aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-06-10 23:51:24 +0800
committerchriseth <c@ethdev.com>2015-06-10 23:51:24 +0800
commitc3caa2ce259696d3855a82ea384b4dafd2b2547b (patch)
tree02d5aae35a96c65b5018d6960d47d6d9174eb9c4
parente224a028266b7157f0ebae38a392718595ee6453 (diff)
downloaddexon-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.cpp22
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);