Commit 97377ac8 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Tweak size handling in Endian

Summary:
[Folly] Tweak size handling in `Endian`.

Either multiply by 8 in one place, or divide by 8 in another place. Go with the latter, because `sizeof` in C++ emits byte sizes, not bit sizes.

Reviewed By: simpkins

Differential Revision: D4645020

fbshipit-source-id: cb78600ba4c20bebc66aed506d4b5d6c378fc998
parent c9cbfdb7
......@@ -241,7 +241,7 @@ struct uint_types_by_size;
return fn(v); \
} \
template <> \
struct uint_types_by_size<sz> { \
struct uint_types_by_size<sz / 8> { \
using type = uint##sz##_t; \
};
......@@ -268,7 +268,7 @@ struct EndianInt {
// we implement this with memcpy because that is defined behavior in C++
// we rely on compilers to optimize away the memcpy calls
constexpr auto s = sizeof(T);
using B = typename uint_types_by_size<8 * s>::type;
using B = typename uint_types_by_size<s>::type;
B b;
std::memcpy(&b, &x, s);
b = byteswap_gen(b);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment