From d25d4ec0eee85501cec8dae9b4a05adfd3e0e0e1 Mon Sep 17 00:00:00 2001 From: Lenny Maiorani Date: Tue, 18 May 2021 14:42:48 -0600 Subject: [PATCH] Bitmap: De-duplicate bitmasks Problem: - Bitmasks are duplicated. - Bitmasks are C-style arrays. Solution: - Move bitmasks to BitmapView.h. - Change C-style arrays to be AK::Array for added safety. --- AK/Bitmap.h | 3 --- AK/BitmapView.h | 7 ++++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/AK/Bitmap.h b/AK/Bitmap.h index e58831379e0..1e0564b7db1 100644 --- a/AK/Bitmap.h +++ b/AK/Bitmap.h @@ -119,9 +119,6 @@ public: if (len == 0) return; - static const u8 bitmask_first_byte[8] = { 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80 }; - static const u8 bitmask_last_byte[8] = { 0x0, 0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F }; - u8* first = &m_data[start / 8]; u8* last = &m_data[(start + len) / 8]; u8 byte_mask = bitmask_first_byte[start % 8]; diff --git a/AK/BitmapView.h b/AK/BitmapView.h index 993f5576294..6117f02d15e 100644 --- a/AK/BitmapView.h +++ b/AK/BitmapView.h @@ -6,6 +6,7 @@ #pragma once +#include #include #include #include @@ -13,6 +14,9 @@ namespace AK { +static constexpr Array bitmask_first_byte = { 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80 }; +static constexpr Array bitmask_last_byte = { 0x00, 0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F }; + class BitmapView { public: BitmapView(u8* data, size_t size) @@ -49,9 +53,6 @@ public: if (len == 0) return 0; - static const u8 bitmask_first_byte[8] = { 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80 }; - static const u8 bitmask_last_byte[8] = { 0x00, 0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F }; - size_t count; const u8* first = &m_data[start / 8]; const u8* last = &m_data[(start + len) / 8];