diff options
author | chriseth <chris@ethereum.org> | 2019-01-16 18:44:11 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2019-01-18 03:36:48 +0800 |
commit | 29f6aa7d560a7d82a9088489e663a079a3b41f73 (patch) | |
tree | 2ef2c682489bc68f16d600d06643f1f39ec12105 /libsolidity/codegen/CompilerUtils.cpp | |
parent | a9fa2658d8690f18aa14c599a305cf59a5cd4e3c (diff) | |
download | dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.tar dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.tar.gz dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.tar.bz2 dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.tar.lz dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.tar.xz dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.tar.zst dexon-solidity-29f6aa7d560a7d82a9088489e663a079a3b41f73.zip |
Do not create a copy of the assembly.
Diffstat (limited to 'libsolidity/codegen/CompilerUtils.cpp')
-rw-r--r-- | libsolidity/codegen/CompilerUtils.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libsolidity/codegen/CompilerUtils.cpp b/libsolidity/codegen/CompilerUtils.cpp index 9b7244ba..6cfb0777 100644 --- a/libsolidity/codegen/CompilerUtils.cpp +++ b/libsolidity/codegen/CompilerUtils.cpp @@ -1209,12 +1209,12 @@ void CompilerUtils::copyContractCodeToMemory(ContractDefinition const& contract, [&contract, _creation](CompilerContext& _context) { // copy the contract's code into memory - eth::Assembly const& assembly = + shared_ptr<eth::Assembly> assembly = _creation ? _context.compiledContract(contract) : _context.compiledContractRuntime(contract); // pushes size - auto subroutine = _context.addSubroutine(make_shared<eth::Assembly>(assembly)); + auto subroutine = _context.addSubroutine(assembly); _context << Instruction::DUP1 << subroutine; _context << Instruction::DUP4 << Instruction::CODECOPY; _context << Instruction::ADD; |