libluna: Stop checking initialization status on every bitmap method call
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Since our asserts (expect()) are enabled on release as well, this is kinda expensive. It's up to the caller, if they receive a null pointer dereference it's their fault for not initializing their bitmap :) We do still assert out-of-range indexing and stuff like that.
This commit is contained in:
parent
148c1c7341
commit
08997007f2
@ -37,8 +37,6 @@ Result<void> Bitmap::deallocate()
|
|||||||
|
|
||||||
void* Bitmap::move(void* new_location, usize new_location_size_in_bytes)
|
void* Bitmap::move(void* new_location, usize new_location_size_in_bytes)
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
|
|
||||||
if (new_location_size_in_bytes > m_size_in_bytes) memcpy(new_location, m_location, m_size_in_bytes);
|
if (new_location_size_in_bytes > m_size_in_bytes) memcpy(new_location, m_location, m_size_in_bytes);
|
||||||
else
|
else
|
||||||
memcpy(new_location, m_location, new_location_size_in_bytes);
|
memcpy(new_location, m_location, new_location_size_in_bytes);
|
||||||
@ -53,7 +51,6 @@ void* Bitmap::move(void* new_location, usize new_location_size_in_bytes)
|
|||||||
|
|
||||||
void Bitmap::set(usize index, bool value)
|
void Bitmap::set(usize index, bool value)
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
expect(index < size(), "Bitmap access out of range");
|
expect(index < size(), "Bitmap access out of range");
|
||||||
const u64 byte_index = index / 8;
|
const u64 byte_index = index / 8;
|
||||||
const u8 bit_mask = (u8)(0b10000000 >> (index % 8));
|
const u8 bit_mask = (u8)(0b10000000 >> (index % 8));
|
||||||
@ -63,7 +60,6 @@ void Bitmap::set(usize index, bool value)
|
|||||||
|
|
||||||
bool Bitmap::get(usize index) const
|
bool Bitmap::get(usize index) const
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
expect(index < size(), "Bitmap access out of range");
|
expect(index < size(), "Bitmap access out of range");
|
||||||
const usize byte_index = index / 8;
|
const usize byte_index = index / 8;
|
||||||
const u8 bit_mask = (u8)(0b10000000 >> (index % 8));
|
const u8 bit_mask = (u8)(0b10000000 >> (index % 8));
|
||||||
@ -72,13 +68,11 @@ bool Bitmap::get(usize index) const
|
|||||||
|
|
||||||
void Bitmap::clear(bool value)
|
void Bitmap::clear(bool value)
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
memset(m_location, value_byte(value), m_size_in_bytes);
|
memset(m_location, value_byte(value), m_size_in_bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bitmap::clear_region(usize start, usize bits, bool value)
|
void Bitmap::clear_region(usize start, usize bits, bool value)
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
expect((start + bits) <= size(), "Bitmap clear out of range");
|
expect((start + bits) <= size(), "Bitmap clear out of range");
|
||||||
|
|
||||||
if (!bits) return;
|
if (!bits) return;
|
||||||
@ -108,8 +102,6 @@ void Bitmap::clear_region(usize start, usize bits, bool value)
|
|||||||
|
|
||||||
Option<usize> Bitmap::find(bool value, usize begin) const
|
Option<usize> Bitmap::find(bool value, usize begin) const
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
|
|
||||||
const usize size = this->size();
|
const usize size = this->size();
|
||||||
|
|
||||||
expect(begin < size, "Start index out of range");
|
expect(begin < size, "Start index out of range");
|
||||||
@ -223,7 +215,6 @@ bool Bitmap::match_region_impl(usize start, usize bits, bool value)
|
|||||||
|
|
||||||
bool Bitmap::match_region(usize start, usize bits, bool value)
|
bool Bitmap::match_region(usize start, usize bits, bool value)
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
expect((start + bits) <= size(), "Bitmap match out of range");
|
expect((start + bits) <= size(), "Bitmap match out of range");
|
||||||
|
|
||||||
return match_region_impl(start, bits, value);
|
return match_region_impl(start, bits, value);
|
||||||
@ -231,7 +222,6 @@ bool Bitmap::match_region(usize start, usize bits, bool value)
|
|||||||
|
|
||||||
Result<bool> Bitmap::try_match_region(usize start, usize bits, bool value)
|
Result<bool> Bitmap::try_match_region(usize start, usize bits, bool value)
|
||||||
{
|
{
|
||||||
expect(initialized(), "Bitmap was never initialized");
|
|
||||||
if ((start + bits) > size()) return err(EINVAL);
|
if ((start + bits) > size()) return err(EINVAL);
|
||||||
|
|
||||||
return match_region_impl(start, bits, value);
|
return match_region_impl(start, bits, value);
|
||||||
|
Loading…
Reference in New Issue
Block a user