Browse Source

Merge remote-tracking branch 'upstream/develop' into stateTests

cl-refactor
Christoph Jentzsch 10 years ago
parent
commit
9aa5b9d2ca
  1. 2
      libdevcore/FixedHash.h
  2. 13
      libevm/VM.h
  3. 4
      test/vm.cpp

2
libdevcore/FixedHash.h

@ -158,7 +158,7 @@ public:
return ret;
}
template <unsigned P, unsigned M> inline FixedHash& shiftBloom(FixedHash<M> const& _h) { return (*this |= _h.nbloom<P, N>()); }
template <unsigned P, unsigned M> inline FixedHash& shiftBloom(FixedHash<M> const& _h) { return (*this |= _h.template nbloom<P, N>()); }
template <unsigned P, unsigned M> inline FixedHash<M> nbloom() const
{

13
libevm/VM.h

@ -449,18 +449,13 @@ template <class Ext> dev::bytesConstRef dev::eth::VM::go(Ext& _ext, OnOpFunc con
break;
case Instruction::SIGNEXTEND:
{
unsigned k = m_stack[m_stack.size() - 2];
if (k > 31)
m_stack[m_stack.size() - 2] = m_stack.back();
else
{
u256 b = m_stack.back();
unsigned k = m_stack.back();
m_stack.pop_back();
auto& b = m_stack.back();
if (k <= 31)
if ((b >> (k * 8)) & 0x80)
for (int i = 31; i > k; --i)
b |= (u256(0xff) << i);
m_stack[m_stack.size() - 2] = b;
}
m_stack.pop_back();
break;
}
case Instruction::SHA3:

4
test/vm.cpp

@ -363,9 +363,9 @@ void FakeExtVM::importExec(mObject& _o)
code = &thisTxCode;
if (_o["code"].type() == str_type)
if (_o["code"].get_str().find_first_of("0x") == 0)
thisTxCode = compileLLL(_o["code"].get_str());
else
thisTxCode = fromHex(_o["code"].get_str().substr(2));
else
thisTxCode = compileLLL(_o["code"].get_str());
else if (_o["code"].type() == array_type)
for (auto const& j: _o["code"].get_array())
thisTxCode.push_back(toByte(j));

Loading…
Cancel
Save