mirror of
https://github.com/status-im/evmc.git
synced 2025-02-23 00:18:24 +00:00
cpp: Deprecate helpers.hpp
This commit is contained in:
parent
1df1e70e0a
commit
7e4db85487
@ -22,6 +22,9 @@
|
||||
In C++ API `evmc::result::raw()` renamed to `evmc::result::release_raw()`.
|
||||
- Changed: [[#311](https://github.com/ethereum/evmc/pull/311)]
|
||||
In `evmc_load_and_create()` the `error_code` is optional (can be `NULL`).
|
||||
- Deprecated: [[#358](https://github.com/ethereum/evmc/pull/358)]
|
||||
The usage of `evmc/helpers.hpp` has been deprecated. Use `evmc/evmc.hpp`
|
||||
which provides the same features.
|
||||
- Fixed:
|
||||
[[#261](https://github.com/ethereum/evmc/issues/261),
|
||||
[#263](https://github.com/ethereum/evmc/pull/263)]
|
||||
|
@ -18,39 +18,47 @@
|
||||
#include <functional>
|
||||
|
||||
/// The comparator for std::map<evmc_address, ...>.
|
||||
EVMC_DEPRECATED
|
||||
inline bool operator<(const evmc_address& a, const evmc_address& b)
|
||||
{
|
||||
return std::memcmp(a.bytes, b.bytes, sizeof(a.bytes)) < 0;
|
||||
}
|
||||
|
||||
/// The comparator for std::map<evmc_bytes32, ...>.
|
||||
EVMC_DEPRECATED
|
||||
inline bool operator<(const evmc_bytes32& a, const evmc_bytes32& b)
|
||||
{
|
||||
return std::memcmp(a.bytes, b.bytes, sizeof(a.bytes)) < 0;
|
||||
}
|
||||
|
||||
/// The comparator for equality.
|
||||
EVMC_DEPRECATED
|
||||
inline bool operator==(const evmc_address& a, const evmc_address& b)
|
||||
{
|
||||
return std::memcmp(a.bytes, b.bytes, sizeof(a.bytes)) == 0;
|
||||
}
|
||||
|
||||
/// The comparator for equality.
|
||||
EVMC_DEPRECATED
|
||||
inline bool operator==(const evmc_bytes32& a, const evmc_bytes32& b)
|
||||
{
|
||||
return std::memcmp(a.bytes, b.bytes, sizeof(a.bytes)) == 0;
|
||||
}
|
||||
|
||||
/// Check if the address is zero (all bytes are zeros).
|
||||
EVMC_DEPRECATED
|
||||
inline bool is_zero(const evmc_address& address) noexcept
|
||||
{
|
||||
return address == evmc_address{};
|
||||
constexpr auto zero = evmc_address{};
|
||||
return std::memcmp(address.bytes, zero.bytes, sizeof(zero.bytes)) == 0;
|
||||
}
|
||||
|
||||
/// Check if the hash is zero (all bytes are zeros).
|
||||
EVMC_DEPRECATED
|
||||
inline bool is_zero(const evmc_bytes32& x) noexcept
|
||||
{
|
||||
return x == evmc_bytes32{};
|
||||
constexpr auto zero = evmc_bytes32{};
|
||||
return std::memcmp(x.bytes, zero.bytes, sizeof(zero.bytes)) == 0;
|
||||
}
|
||||
|
||||
/// Parameters for the fnv1a hash function, specialized by the hash result size (size_t).
|
||||
@ -98,7 +106,7 @@ namespace std
|
||||
{
|
||||
/// Hash operator template specialization for evmc_address needed for unordered containers.
|
||||
template <>
|
||||
struct hash<evmc_address>
|
||||
struct EVMC_DEPRECATED hash<evmc_address>
|
||||
{
|
||||
/// Hash operator using FNV1a.
|
||||
size_t operator()(const evmc_address& s) const noexcept
|
||||
@ -109,7 +117,7 @@ struct hash<evmc_address>
|
||||
|
||||
/// Hash operator template needed for std::unordered_set and others using hashes.
|
||||
template <>
|
||||
struct hash<evmc_bytes32>
|
||||
struct EVMC_DEPRECATED hash<evmc_bytes32>
|
||||
{
|
||||
/// Hash operator using FNV1a.
|
||||
size_t operator()(const evmc_bytes32& s) const noexcept
|
||||
|
@ -3,7 +3,6 @@
|
||||
// Licensed under the Apache License, Version 2.0.
|
||||
|
||||
#include <evmc/helpers.h>
|
||||
#include <evmc/helpers.hpp>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
@ -27,27 +26,6 @@ static constexpr size_t optionalDataSize =
|
||||
static_assert(optionalDataSize >= sizeof(evmc_result_optional_storage),
|
||||
"evmc_result's optional data space is too small");
|
||||
|
||||
|
||||
TEST(helpers, fnv1a)
|
||||
{
|
||||
const uint8_t text[] = {'E', 'V', 'M', 'C'};
|
||||
const auto h = fnv1a(text, sizeof(text));
|
||||
EXPECT_EQ(h, sizeof(size_t) == 8 ? 0x15e05d6d22fed89a : 0xffaa6a9a);
|
||||
}
|
||||
|
||||
TEST(helpers, is_zero)
|
||||
{
|
||||
auto a = evmc_address{};
|
||||
EXPECT_TRUE(is_zero(a));
|
||||
a.bytes[0] = 1;
|
||||
EXPECT_FALSE(is_zero(a));
|
||||
|
||||
auto b = evmc_bytes32{};
|
||||
EXPECT_TRUE(is_zero(b));
|
||||
b.bytes[0] = 1;
|
||||
EXPECT_FALSE(is_zero(b));
|
||||
}
|
||||
|
||||
TEST(helpers, release_result)
|
||||
{
|
||||
auto r1 = evmc_result{};
|
||||
|
Loading…
x
Reference in New Issue
Block a user