aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/CompilerUtils.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2019-01-16 18:44:11 +0800
committerchriseth <chris@ethereum.org>2019-01-18 03:36:48 +0800
commit29f6aa7d560a7d82a9088489e663a079a3b41f73 (patch)
tree2ef2c682489bc68f16d600d06643f1f39ec12105 /libsolidity/codegen/CompilerUtils.cpp
parenta9fa2658d8690f18aa14c599a305cf59a5cd4e3c (diff)
downloaddexon-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.cpp4
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;