diff options
author | chriseth <c@ethdev.com> | 2015-06-10 23:51:24 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-06-10 23:51:24 +0800 |
commit | c3caa2ce259696d3855a82ea384b4dafd2b2547b (patch) | |
tree | 02d5aae35a96c65b5018d6960d47d6d9174eb9c4 | |
parent | e224a028266b7157f0ebae38a392718595ee6453 (diff) | |
download | dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.tar dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.tar.gz dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.tar.bz2 dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.tar.lz dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.tar.xz dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.tar.zst dexon-solidity-c3caa2ce259696d3855a82ea384b4dafd2b2547b.zip |
Added missing source locations for new memory management code.
-rw-r--r-- | Compiler.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/Compiler.cpp b/Compiler.cpp index 0d7fbbfe..950b1e75 100644 --- a/Compiler.cpp +++ b/Compiler.cpp @@ -52,22 +52,26 @@ void Compiler::compileContract(ContractDefinition const& _contract, map<ContractDefinition const*, bytes const*> const& _contracts) { m_context = CompilerContext(); // clear it just in case - CompilerUtils(m_context).initialiseFreeMemoryPointer(); - initializeContext(_contract, _contracts); - appendFunctionSelector(_contract); - set<Declaration const*> functions = m_context.getFunctionsWithoutCode(); - while (!functions.empty()) { - for (Declaration const* function: functions) + CompilerContext::LocationSetter locationSetterRunTime(m_context, _contract); + CompilerUtils(m_context).initialiseFreeMemoryPointer(); + initializeContext(_contract, _contracts); + appendFunctionSelector(_contract); + set<Declaration const*> functions = m_context.getFunctionsWithoutCode(); + while (!functions.empty()) { - m_context.setStackOffset(0); - function->accept(*this); + for (Declaration const* function: functions) + { + m_context.setStackOffset(0); + function->accept(*this); + } + functions = m_context.getFunctionsWithoutCode(); } - functions = m_context.getFunctionsWithoutCode(); } // Swap the runtime context with the creation-time context swap(m_context, m_runtimeContext); + CompilerContext::LocationSetter locationSetterCreationTime(m_context, _contract); CompilerUtils(m_context).initialiseFreeMemoryPointer(); initializeContext(_contract, _contracts); packIntoContractCreator(_contract, m_runtimeContext); |