mirror of https://github.com/status-im/evmc.git
EVM-C: Replace evm_result payload with 24 bytes union
This commit is contained in:
parent
cb90d9f35c
commit
497f92bcb8
|
@ -94,7 +94,6 @@ static struct evm_result execute(struct evm_instance* instance,
|
|||
ret.output_data = output_data;
|
||||
ret.output_size = address_size;
|
||||
ret.release = &free_result_output_data;
|
||||
ret.payload.pointer = NULL; // We don't need another pointer.
|
||||
return ret;
|
||||
}
|
||||
else if (code_size == strlen(counter) &&
|
||||
|
|
|
@ -170,12 +170,19 @@ struct evm_result {
|
|||
/// function to the result itself allows EVM composition.
|
||||
evm_release_result_fn release;
|
||||
|
||||
/// Reserved data to be optionally used by implementations.
|
||||
union {
|
||||
uint8_t bytes[24];
|
||||
struct evm_uint160be address;
|
||||
void* pointer;
|
||||
} payload;
|
||||
/// Reserved data that MAY be used by a evm_result object creator.
|
||||
///
|
||||
/// This reserved 24 bytes extends the size of the evm_result to 64 bytes
|
||||
/// (full cache line).
|
||||
/// An EVM implementation MAY use this memory to keep additional data
|
||||
/// when returning result from ::evm_execute_fn.
|
||||
/// The host application MAY use this memory to keep additional data
|
||||
/// when returning result of performed calls from ::evm_call_fn.
|
||||
union
|
||||
{
|
||||
void* context; ///< A pointer for storing external objects.
|
||||
uint8_t data[24]; ///< 24 bytes of reserved data.
|
||||
} reserved;
|
||||
};
|
||||
|
||||
/// The query callback key.
|
||||
|
|
Loading…
Reference in New Issue