Fix UI display of signed negative integers smaller than 256 bits
This commit is contained in:
10
src/utils.c
10
src/utils.c
@@ -34,6 +34,16 @@ void array_hexstr(char *strbuf, const void *bin, unsigned int len) {
|
||||
*strbuf = 0; // EOS
|
||||
}
|
||||
|
||||
void convertUint64BEto128(const uint8_t *const data, uint32_t length, uint128_t *const target) {
|
||||
uint8_t tmp[INT128_LENGTH];
|
||||
int64_t value;
|
||||
|
||||
value = u64_from_BE(data, length);
|
||||
memset(tmp, ((value < 0) ? 0xff : 0), sizeof(tmp) - length);
|
||||
memmove(tmp + sizeof(tmp) - length, data, length);
|
||||
readu128BE(tmp, target);
|
||||
}
|
||||
|
||||
void convertUint128BE(const uint8_t *const data, uint32_t length, uint128_t *const target) {
|
||||
uint8_t tmp[INT128_LENGTH];
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ void array_hexstr(char* strbuf, const void* bin, unsigned int len);
|
||||
|
||||
void convertUint128BE(const uint8_t *const data, uint32_t length, uint128_t *const target);
|
||||
void convertUint256BE(const uint8_t *const data, uint32_t length, uint256_t *const target);
|
||||
void convertUint64BEto128(const uint8_t *const data, uint32_t length, uint128_t *const target);
|
||||
|
||||
uint64_t u64_from_BE(const uint8_t* in, uint8_t size);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user