aboutsummaryrefslogtreecommitdiffstats
path: root/Compiler.cpp
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2014-12-12 00:34:47 +0800
committerChristian <c@ethdev.com>2014-12-12 00:48:44 +0800
commite2547526ab82ce00511da0c69f7e7de5944d6530 (patch)
tree64346678a3978a75ce19275253ba8b6361e32bb6 /Compiler.cpp
parent66d95abfd9d0a1c3d6516dec39d085d7d96cccbf (diff)
downloaddexon-solidity-e2547526ab82ce00511da0c69f7e7de5944d6530.tar.gz
dexon-solidity-e2547526ab82ce00511da0c69f7e7de5944d6530.tar.zst
dexon-solidity-e2547526ab82ce00511da0c69f7e7de5944d6530.zip
Do not add at the end of the function selector "loop".
Diffstat (limited to 'Compiler.cpp')
-rw-r--r--Compiler.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/Compiler.cpp b/Compiler.cpp
index d41bcffa..97431341 100644
--- a/Compiler.cpp
+++ b/Compiler.cpp
@@ -109,8 +109,8 @@ void Compiler::appendFunctionSelector(ContractDefinition const& _contract)
callDataUnpackerEntryPoints.push_back(m_context.newTag());
m_context << eth::dupInstruction(2) << eth::dupInstruction(2) << eth::Instruction::EQ;
m_context.appendConditionalJumpTo(callDataUnpackerEntryPoints.back());
- m_context << eth::dupInstruction(4) << eth::Instruction::ADD;
- //@todo avoid the last ADD (or remove it in the optimizer)
+ if (funid < interfaceFunctions.size() - 1)
+ m_context << eth::dupInstruction(4) << eth::Instruction::ADD;
}
m_context << eth::Instruction::STOP; // function not found