MCPcopy Create free account
hub / github.com/argotorg/solidity / assemble

Method assemble

libevmasm/EVMAssemblyStack.cpp:52–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52void EVMAssemblyStack::assemble()
53{
54 solAssert(m_evmAssembly);
55 solAssert(m_evmAssembly->isCreation());
56 solAssert(!m_evmRuntimeAssembly);
57
58 m_evmAssembly->optimise(m_optimiserSettings);
59 m_object = m_evmAssembly->assemble();
60 // TODO: Check for EOF
61 solAssert(m_evmAssembly->codeSections().size() == 1);
62 m_sourceMapping = AssemblyItem::computeSourceMapping(m_evmAssembly->codeSections().front().items, sourceIndices());
63 if (m_evmAssembly->numSubs() > 0)
64 {
65 m_evmRuntimeAssembly = std::make_shared<evmasm::Assembly>(m_evmAssembly->sub(SubAssemblyID{0}));
66 solAssert(m_evmRuntimeAssembly && !m_evmRuntimeAssembly->isCreation());
67 // TODO: Check for EOF
68 solAssert(m_evmRuntimeAssembly->codeSections().size() == 1);
69 m_runtimeSourceMapping = AssemblyItem::computeSourceMapping(m_evmRuntimeAssembly->codeSections().front().items, sourceIndices());
70 m_runtimeObject = m_evmRuntimeAssembly->assemble();
71 }
72}
73
74LinkerObject const& EVMAssemblyStack::object(std::string const& _contractName) const
75{

Callers 2

createEOFHeaderMethod · 0.45
Assembly.cppFile · 0.45

Calls 4

isCreationMethod · 0.80
numSubsMethod · 0.80
optimiseMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected