diff --git a/libevmasm/Assembly.cpp b/libevmasm/Assembly.cpp index 7884dd191..a2c679683 100644 --- a/libevmasm/Assembly.cpp +++ b/libevmasm/Assembly.cpp @@ -48,11 +48,11 @@ using namespace solidity::evmasm; using namespace solidity::langutil; using namespace solidity::util; -AssemblyItem const& Assembly::append(AssemblyItem const& _i) +AssemblyItem const& Assembly::append(AssemblyItem _i) { assertThrow(m_deposit >= 0, AssemblyException, "Stack underflow."); m_deposit += static_cast(_i.deposit()); - m_items.emplace_back(_i); + m_items.emplace_back(move(_i)); if (!m_items.back().location().isValid() && m_currentSourceLocation.isValid()) m_items.back().setLocation(m_currentSourceLocation); m_items.back().m_modifierDepth = m_currentModifierDepth; diff --git a/libevmasm/Assembly.h b/libevmasm/Assembly.h index 1d91c2f90..71063dd75 100644 --- a/libevmasm/Assembly.h +++ b/libevmasm/Assembly.h @@ -64,7 +64,7 @@ public: AssemblyItem newPushImmutable(std::string const& _identifier); AssemblyItem newImmutableAssignment(std::string const& _identifier); - AssemblyItem const& append(AssemblyItem const& _i); + AssemblyItem const& append(AssemblyItem _i); AssemblyItem const& append(bytes const& _data) { return append(newData(_data)); } template Assembly& operator<<(T const& _d) { append(_d); return *this; }