aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/ContractCompiler.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2019-01-10 23:44:31 +0800
committerchriseth <chris@ethereum.org>2019-01-18 03:36:48 +0800
commite6fee257e68e7b145a47eee8c5937db7a7a99849 (patch)
treed4dce225357536d378d69f1ac87c4c5132d15613 /libsolidity/codegen/ContractCompiler.cpp
parent2fcfb216b5dcb5cec2d70d2ee7647df47c8166ca (diff)
downloaddexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.tar
dexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.tar.gz
dexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.tar.bz2
dexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.tar.lz
dexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.tar.xz
dexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.tar.zst
dexon-solidity-e6fee257e68e7b145a47eee8c5937db7a7a99849.zip
Code generation for access to contract code.
Diffstat (limited to 'libsolidity/codegen/ContractCompiler.cpp')
-rw-r--r--libsolidity/codegen/ContractCompiler.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/libsolidity/codegen/ContractCompiler.cpp b/libsolidity/codegen/ContractCompiler.cpp
index b051d260..a718603b 100644
--- a/libsolidity/codegen/ContractCompiler.cpp
+++ b/libsolidity/codegen/ContractCompiler.cpp
@@ -60,7 +60,7 @@ private:
void ContractCompiler::compileContract(
ContractDefinition const& _contract,
- std::map<const ContractDefinition*, eth::Assembly const*> const& _contracts
+ map<ContractDefinition const*, shared_ptr<Compiler const>> const& _otherCompilers
)
{
CompilerContext::LocationSetter locationSetter(m_context, _contract);
@@ -70,7 +70,7 @@ void ContractCompiler::compileContract(
// This has to be the first code in the contract.
appendDelegatecallCheck();
- initializeContext(_contract, _contracts);
+ initializeContext(_contract, _otherCompilers);
// This generates the dispatch function for externally visible functions
// and adds the function to the compilation queue. Additionally internal functions,
// which are referenced directly or indirectly will be added.
@@ -81,7 +81,7 @@ void ContractCompiler::compileContract(
size_t ContractCompiler::compileConstructor(
ContractDefinition const& _contract,
- std::map<const ContractDefinition*, eth::Assembly const*> const& _contracts
+ std::map<ContractDefinition const*, shared_ptr<Compiler const>> const& _otherCompilers
)
{
CompilerContext::LocationSetter locationSetter(m_context, _contract);
@@ -89,18 +89,18 @@ size_t ContractCompiler::compileConstructor(
return deployLibrary(_contract);
else
{
- initializeContext(_contract, _contracts);
+ initializeContext(_contract, _otherCompilers);
return packIntoContractCreator(_contract);
}
}
void ContractCompiler::initializeContext(
ContractDefinition const& _contract,
- map<ContractDefinition const*, eth::Assembly const*> const& _compiledContracts
+ map<ContractDefinition const*, shared_ptr<Compiler const>> const& _otherCompilers
)
{
m_context.setExperimentalFeatures(_contract.sourceUnit().annotation().experimentalFeatures);
- m_context.setCompiledContracts(_compiledContracts);
+ m_context.setOtherCompilers(_otherCompilers);
m_context.setInheritanceHierarchy(_contract.annotation().linearizedBaseContracts);
CompilerUtils(m_context).initialiseFreeMemoryPointer();
registerStateVariables(_contract);