mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Added missing source locations for new memory management code.
This commit is contained in:
parent
e224a02826
commit
c3caa2ce25
22
Compiler.cpp
22
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);
|
||||
|
Loading…
Reference in New Issue
Block a user