Merge pull request #138 from ethereum/bool

Use bool type instead of int with 1 and 0
This commit is contained in:
Paweł Bylica 2018-09-06 09:10:42 +02:00 committed by GitHub
commit 83a679c524
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 43 deletions

View File

@ -53,12 +53,12 @@ static inline void go_exported_functions_type_checks()
(void)result;
enum evmc_storage_status storage_status;
(void)storage_status;
int status;
(void)status;
bool bool_flag;
(void)bool_flag;
evmc_account_exists_fn account_exists_fn = NULL;
status = account_exists_fn(context, address);
status = accountExists(context, address);
bool_flag = account_exists_fn(context, address);
bool_flag = accountExists(context, address);
evmc_get_storage_fn get_storage_fn = NULL;
get_storage_fn(uint256be, context, address, uint256be);
@ -97,8 +97,8 @@ static inline void go_exported_functions_type_checks()
tx_context = getTxContext(context);
evmc_get_block_hash_fn get_block_hash_fn = NULL;
status = get_block_hash_fn(uint256be, context, number);
status = getBlockHash(uint256be, context, number);
bool_flag = get_block_hash_fn(uint256be, context, number);
bool_flag = getBlockHash(uint256be, context, number);
evmc_emit_log_fn emit_log_fn = NULL;
emit_log_fn(context, address, data, size, uint256be, size);

View File

@ -88,15 +88,10 @@ type HostContext interface {
}
//export accountExists
func accountExists(pCtx unsafe.Pointer, pAddr *C.struct_evmc_address) C.int {
func accountExists(pCtx unsafe.Pointer, pAddr *C.struct_evmc_address) C.bool {
idx := int((*C.struct_extended_context)(pCtx).index)
ctx := getHostContext(idx)
exists := ctx.AccountExists(goAddress(*pAddr))
r := C.int(0)
if exists {
r = 1
}
return r
return C.bool(ctx.AccountExists(goAddress(*pAddr)))
}
//export getStorage
@ -183,17 +178,17 @@ func getTxContext(pCtx unsafe.Pointer) C.struct_evmc_tx_context {
}
//export getBlockHash
func getBlockHash(pResult *C.struct_evmc_uint256be, pCtx unsafe.Pointer, number int64) C.int {
func getBlockHash(pResult *C.struct_evmc_uint256be, pCtx unsafe.Pointer, number int64) C.bool {
idx := int((*C.struct_extended_context)(pCtx).index)
ctx := getHostContext(idx)
blockhash, err := ctx.GetBlockHash(number)
if err != nil {
return C.int(0)
return false
}
*pResult = evmcUint256be(blockhash)
return C.int(1)
return true
}
//export emitLog

View File

@ -24,11 +24,11 @@ static evmc_uint256be balance(evmc_context* context, const evmc_address* address
return ret;
}
static int account_exists(evmc_context* context, const evmc_address* address)
static bool account_exists(evmc_context* context, const evmc_address* address)
{
(void)context;
(void)address;
return 0;
return false;
}
static void get_storage(evmc_uint256be* result,
@ -114,17 +114,17 @@ static evmc_tx_context get_tx_context(evmc_context* context)
return result;
}
static int get_block_hash(evmc_uint256be* result, evmc_context* context, int64_t number)
static bool get_block_hash(evmc_uint256be* result, evmc_context* context, int64_t number)
{
example_host_context* host = static_cast<example_host_context*>(context);
int64_t current_block_number = host->tx_context.block_number;
if (number >= current_block_number || number < current_block_number - 256)
return 0;
return false;
evmc_uint256be example_block_hash{};
*result = example_block_hash;
return 1;
return true;
}
static void emit_log(evmc_context* context,

View File

@ -11,8 +11,9 @@
#ifndef EVMC_H
#define EVMC_H
#include <stddef.h> /* Definition of size_t. */
#include <stdint.h> /* Definition of int64_t, uint64_t. */
#include <stdbool.h> /* Definition of bool, true and false. */
#include <stddef.h> /* Definition of size_t. */
#include <stdint.h> /* Definition of int64_t, uint64_t. */
#if __cplusplus
extern "C" {
@ -147,19 +148,19 @@ typedef struct evmc_tx_context (*evmc_get_tx_context_fn)(struct evmc_context* co
/**
* Get block hash callback function.
*
* This callback function is used by an VM to query the block hash of
* a given block. If the requested block is not found, then an appropriate
* result code is returned.
* This callback function is used by an VM to query the block hash of
* a given block. If the requested block is not found, then an appropriate
* result code is returned.
*
* @param[out] result The returned block hash value. Only written to
* if the return value is 1 (information is avialable).
* @param context The pointer to the Host execution context.
* @param number The block number.
* @return 1 if the information is available, 0 otherwise.
* @param[out] result The returned block hash value. Only written to
* if the return value is 1 (information is avialable).
* @param context The pointer to the Host execution context.
* @param number The block number.
* @return true if the information is available, false otherwise.
*/
typedef int (*evmc_get_block_hash_fn)(struct evmc_uint256be* result,
struct evmc_context* context,
int64_t number);
typedef bool (*evmc_get_block_hash_fn)(struct evmc_uint256be* result,
struct evmc_context* context,
int64_t number);
/**
* The execution status code.
@ -387,17 +388,16 @@ struct evmc_result
/**
* Check account existence callback function
* Check account existence callback function.
*
* This callback function is used by the EVM to check if
* there exists an account at given address.
* @param context The pointer to the Host execution context.
* @see ::evmc_context.
* @param address The address of the account the query is about.
* @return 1 if exists, 0 otherwise.
* This callback function is used by the VM to check if
* there exists an account at given address.
* @param context The pointer to the Host execution context.
* @param address The address of the account the query is about.
* @return true if exists, false otherwise.
*/
typedef int (*evmc_account_exists_fn)(struct evmc_context* context,
const struct evmc_address* address);
typedef bool (*evmc_account_exists_fn)(struct evmc_context* context,
const struct evmc_address* address);
/**
* Get storage callback function.