aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-06-15 03:26:26 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-06-15 04:21:26 +0800
commit6a260a9ff1c0c9c8ee14e988bd066b74555651e7 (patch)
treef476771bb94ffd2d698348fa460ea3b008e385f1
parent18fc66765808c717c0ed5f3f2b3da979618c329d (diff)
downloaddexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.tar
dexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.tar.gz
dexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.tar.bz2
dexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.tar.lz
dexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.tar.xz
dexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.tar.zst
dexon-solidity-6a260a9ff1c0c9c8ee14e988bd066b74555651e7.zip
Remove single use Assembly::popTo
-rw-r--r--libevmasm/Assembly.h2
-rw-r--r--liblll/CodeFragment.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/libevmasm/Assembly.h b/libevmasm/Assembly.h
index 6549cc45..36fdda36 100644
--- a/libevmasm/Assembly.h
+++ b/libevmasm/Assembly.h
@@ -84,8 +84,6 @@ public:
void ignored() { m_baseDeposit = m_deposit; }
void endIgnored() { m_deposit = m_baseDeposit; m_baseDeposit = 0; }
- void popTo(int _deposit) { while (m_deposit > _deposit) append(solidity::Instruction::POP); }
-
void injectStart(AssemblyItem const& _i);
int deposit() const { return m_deposit; }
void adjustDeposit(int _adjustment) { m_deposit += _adjustment; if (asserts(m_deposit >= 0)) BOOST_THROW_EXCEPTION(InvalidDeposit()); }
diff --git a/liblll/CodeFragment.cpp b/liblll/CodeFragment.cpp
index 0f7f48ba..47ddc4a6 100644
--- a/liblll/CodeFragment.cpp
+++ b/liblll/CodeFragment.cpp
@@ -571,7 +571,9 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s)
{
for (auto const& i: code)
m_asm.append(i.m_asm);
- m_asm.popTo(1);
+ // Leave only the last item on stack.
+ while (m_asm.deposit() > 1)
+ m_asm.append(Instruction::POP);
}
else if (us == "BYTECODESIZE")
{