mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-21 20:26:41 +00:00
Restore correct memory access in Ext functions
This commit is contained in:
parent
05bbe53ef9
commit
0eb8311aa1
1 changed files with 4 additions and 5 deletions
|
|
@ -225,8 +225,7 @@ EXPORT void ext_create(Runtime* _rt, i256* _endowment, i256* _initOff, i256* _in
|
|||
u256 gas; // TODO: Handle gas
|
||||
auto initOff = static_cast<size_t>(llvm2eth(*_initOff));
|
||||
auto initSize = static_cast<size_t>(llvm2eth(*_initSize));
|
||||
//auto&& initRef = bytesConstRef(Runtime::getMemory().data() + initOff, initSize);
|
||||
bytesConstRef initRef;
|
||||
auto&& initRef = bytesConstRef(_rt->getMemory().data() + initOff, initSize);
|
||||
OnOpFunc onOp{}; // TODO: Handle that thing
|
||||
h256 address = ext.create(endowment, &gas, initRef, onOp);
|
||||
*_address = address;
|
||||
|
|
@ -252,8 +251,8 @@ EXPORT void ext_call(Runtime* _rt, i256* _gas, h256* _receiveAddress, i256* _val
|
|||
auto inSize = static_cast<size_t>(llvm2eth(*_inSize));
|
||||
auto outOff = static_cast<size_t>(llvm2eth(*_outOff));
|
||||
auto outSize = static_cast<size_t>(llvm2eth(*_outSize));
|
||||
auto&& inRef = bytesConstRef(); //Runtime::getMemory().data() + inOff, inSize);
|
||||
auto&& outRef = bytesConstRef(); // Runtime::getMemory().data() + outOff, outSize);
|
||||
auto&& inRef = bytesConstRef(_rt->getMemory().data() + inOff, inSize);
|
||||
auto&& outRef = bytesConstRef(_rt->getMemory().data() + outOff, outSize);
|
||||
OnOpFunc onOp{}; // TODO: Handle that thing
|
||||
auto codeAddress = right160(*_codeAddress);
|
||||
ret = ext.call(receiveAddress, value, inRef, &gas, outRef, onOp, {}, codeAddress);
|
||||
|
|
@ -267,7 +266,7 @@ EXPORT void ext_sha3(Runtime* _rt, i256* _inOff, i256* _inSize, i256* _ret)
|
|||
{
|
||||
auto inOff = static_cast<size_t>(llvm2eth(*_inOff));
|
||||
auto inSize = static_cast<size_t>(llvm2eth(*_inSize));
|
||||
auto dataRef = bytesConstRef(); // Runtime::getMemory().data() + inOff, inSize);
|
||||
auto dataRef = bytesConstRef(_rt->getMemory().data() + inOff, inSize);
|
||||
auto hash = sha3(dataRef);
|
||||
*_ret = *reinterpret_cast<i256*>(&hash);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue