src: enable TE checks in packer.h; add some "noexcept"
This commit is contained in:
parent
5dc54c7adc
commit
9e3b1c9f8a
@ -171,8 +171,8 @@ inline void set_le24(void *p, unsigned v) noexcept {
|
||||
}
|
||||
|
||||
inline unsigned get_le26(const void *p) noexcept { return get_le32(p) & 0x03ffffff; }
|
||||
inline unsigned get_le19_5(const void *p) { return 0x7ffff & (get_le32(p) >> 5); }
|
||||
inline unsigned get_le14_5(const void *p) { return 0x03fff & (get_le32(p) >> 5); }
|
||||
inline unsigned get_le19_5(const void *p) noexcept { return 0x7ffff & (get_le32(p) >> 5); }
|
||||
inline unsigned get_le14_5(const void *p) noexcept { return 0x03fff & (get_le32(p) >> 5); }
|
||||
|
||||
inline void set_le26(void *p, unsigned v) noexcept {
|
||||
// preserve the top 6 bits
|
||||
@ -181,10 +181,10 @@ inline void set_le26(void *p, unsigned v) noexcept {
|
||||
set_ne32(p, (get_ne32(p) & ne32_to_le32(0xfc000000)) |
|
||||
(ne32_to_le32(v) & ne32_to_le32(0x03ffffff)));
|
||||
}
|
||||
inline void set_le19_5(void *p, unsigned v) {
|
||||
inline void set_le19_5(void *p, unsigned v) noexcept {
|
||||
set_le32(p, (get_le32(p) & 0xff00001f) | ((v & 0x07ffff) << 5));
|
||||
}
|
||||
inline void set_le14_5(void *p, unsigned v) {
|
||||
inline void set_le14_5(void *p, unsigned v) noexcept {
|
||||
set_le32(p, (get_le32(p) & 0xfff8001f) | ((v & 0x003fff) << 5));
|
||||
}
|
||||
|
||||
|
||||
@ -278,7 +278,7 @@ protected:
|
||||
unsigned image_size, int bits, bool bswap);
|
||||
|
||||
// Target Endianness abstraction
|
||||
#if 0
|
||||
#if 1
|
||||
// try to detect TE16 vs TE32 vs TE64 size mismatches; note that "byte" is explicitly allowed
|
||||
template <class T>
|
||||
static inline constexpr bool is_te16_type = is_same_any_v<T, byte, upx_uint16_t, BE16, LE16>;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user