Improve MemoryLog buffer size checks.

GitOrigin-RevId: f7f270f7e2587aadb5d682aca4c7279dd27d770f
This commit is contained in:
levlam 2020-08-04 01:23:48 +03:00
parent 37e87bddf5
commit d6b2fc0e17

View File

@ -19,7 +19,9 @@ namespace td {
template <int buffer_size = 32 * (1 << 10)> template <int buffer_size = 32 * (1 << 10)>
class MemoryLog : public LogInterface { class MemoryLog : public LogInterface {
static constexpr size_t MAX_OUTPUT_SIZE = buffer_size / 16 < (8 << 10) ? buffer_size / 16 : (8 << 10); static constexpr size_t MAX_OUTPUT_SIZE = buffer_size / 16 < (8 << 10) ? buffer_size / 16 : (8 << 10);
static_assert((buffer_size & 15) == 0 && buffer_size >= (8 << 10), "Invalid buffer size");
static_assert((buffer_size & (buffer_size - 1)) == 0, "Buffer size must be power of 2");
static_assert(buffer_size >= (8 << 10), "Too small buffer size");
public: public:
MemoryLog() { MemoryLog() {