mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-20 11:46:44 +00:00
Convenient Memory::require() overload
This commit is contained in:
parent
ab556c638a
commit
0931289287
2 changed files with 12 additions and 3 deletions
|
|
@ -173,10 +173,15 @@ void Memory::require(llvm::Value* _size)
|
|||
m_builder.CreateCall(m_require, _size);
|
||||
}
|
||||
|
||||
void Memory::registerReturnData(llvm::Value* _index, llvm::Value* _size)
|
||||
void Memory::require(llvm::Value* _offset, llvm::Value* _size)
|
||||
{
|
||||
auto sizeRequired = m_builder.CreateAdd(_index, _size, "sizeRequired");
|
||||
require(sizeRequired); // Make sure that memory is allocated and count gas
|
||||
auto sizeRequired = m_builder.CreateAdd(_offset, _size, "sizeRequired");
|
||||
require(sizeRequired);
|
||||
}
|
||||
|
||||
void Memory::registerReturnData(llvm::Value* _index, llvm::Value* _size)
|
||||
{
|
||||
require(_index, _size); // Make sure that memory is allocated and count gas
|
||||
|
||||
m_builder.CreateStore(_index, m_returnDataOffset);
|
||||
m_builder.CreateStore(_size, m_returnDataSize);
|
||||
|
|
|
|||
|
|
@ -20,8 +20,12 @@ public:
|
|||
void storeByte(llvm::Value* _addr, llvm::Value* _byte);
|
||||
llvm::Value* getSize();
|
||||
|
||||
/// Requires this amount of memory. And counts gas fee for that memory.
|
||||
void require(llvm::Value* _size);
|
||||
|
||||
/// Requires the amount of memory to for data defined by offset and size. And counts gas fee for that memory.
|
||||
void require(llvm::Value* _offset, llvm::Value* _size);
|
||||
|
||||
void registerReturnData(llvm::Value* _index, llvm::Value* _size);
|
||||
static dev::bytesConstRef getReturnData();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue