@@ -31,34 +31,17 @@ struct address : evmc_address
31
31
// / Default and converting constructor.
32
32
// /
33
33
// / Initializes bytes to zeros if not other @p init value provided.
34
- constexpr address (evmc_address init = {}) noexcept : evmc_address{init} {}
34
+ inline constexpr address (evmc_address init = {}) noexcept : evmc_address{init} {}
35
35
36
36
// / Converting constructor from unsigned integer value.
37
37
// /
38
38
// / This constructor assigns the @p v value to the last 8 bytes [12:19]
39
39
// / in big-endian order.
40
- constexpr explicit address (uint64_t v) noexcept
41
- : evmc_address{{0 ,
42
- 0 ,
43
- 0 ,
44
- 0 ,
45
- 0 ,
46
- 0 ,
47
- 0 ,
48
- 0 ,
49
- 0 ,
50
- 0 ,
51
- 0 ,
52
- 0 ,
53
- static_cast <uint8_t >(v >> 56 ),
54
- static_cast <uint8_t >(v >> 48 ),
55
- static_cast <uint8_t >(v >> 40 ),
56
- static_cast <uint8_t >(v >> 32 ),
57
- static_cast <uint8_t >(v >> 24 ),
58
- static_cast <uint8_t >(v >> 16 ),
59
- static_cast <uint8_t >(v >> 8 ),
60
- static_cast <uint8_t >(v >> 0 )}}
61
- {}
40
+ inline constexpr explicit address (uint64_t v) noexcept : evmc_address{}
41
+ {
42
+ for (size_t i = sizeof (bytes) - sizeof (v); i < sizeof (bytes); ++i)
43
+ bytes[i] = static_cast <uint8_t >(v >> (8 * (sizeof (bytes) - 1 - i)));
44
+ }
62
45
63
46
// / Explicit operator converting to bool.
64
47
inline constexpr explicit operator bool () const noexcept ;
@@ -75,46 +58,17 @@ struct bytes32 : evmc_bytes32
75
58
// / Default and converting constructor.
76
59
// /
77
60
// / Initializes bytes to zeros if not other @p init value provided.
78
- constexpr bytes32 (evmc_bytes32 init = {}) noexcept : evmc_bytes32{init} {}
61
+ inline constexpr bytes32 (evmc_bytes32 init = {}) noexcept : evmc_bytes32{init} {}
79
62
80
63
// / Converting constructor from unsigned integer value.
81
64
// /
82
65
// / This constructor assigns the @p v value to the last 8 bytes [24:31]
83
66
// / in big-endian order.
84
- constexpr explicit bytes32 (uint64_t v) noexcept
85
- : evmc_bytes32{{0 ,
86
- 0 ,
87
- 0 ,
88
- 0 ,
89
- 0 ,
90
- 0 ,
91
- 0 ,
92
- 0 ,
93
- 0 ,
94
- 0 ,
95
- 0 ,
96
- 0 ,
97
- 0 ,
98
- 0 ,
99
- 0 ,
100
- 0 ,
101
- 0 ,
102
- 0 ,
103
- 0 ,
104
- 0 ,
105
- 0 ,
106
- 0 ,
107
- 0 ,
108
- 0 ,
109
- static_cast <uint8_t >(v >> 56 ),
110
- static_cast <uint8_t >(v >> 48 ),
111
- static_cast <uint8_t >(v >> 40 ),
112
- static_cast <uint8_t >(v >> 32 ),
113
- static_cast <uint8_t >(v >> 24 ),
114
- static_cast <uint8_t >(v >> 16 ),
115
- static_cast <uint8_t >(v >> 8 ),
116
- static_cast <uint8_t >(v >> 0 )}}
117
- {}
67
+ inline constexpr explicit bytes32 (uint64_t v) noexcept : evmc_bytes32{}
68
+ {
69
+ for (size_t i = sizeof (bytes) - sizeof (v); i < sizeof (bytes); ++i)
70
+ bytes[i] = static_cast <uint8_t >(v >> (8 * (sizeof (bytes) - 1 - i)));
71
+ }
118
72
119
73
// / Explicit operator converting to bool.
120
74
inline constexpr explicit operator bool () const noexcept ;
0 commit comments