feat(memory): add SMemZero

This commit is contained in:
Adam Heinermann 2025-09-01 21:00:55 -07:00 committed by fallenoak
parent 2efa5339e2
commit 60523c3fe8
3 changed files with 27 additions and 0 deletions

View file

@ -70,3 +70,10 @@ void* SMemReAlloc(void* ptr, size_t bytes, const char* filename, int32_t linenum
return nullptr; return nullptr;
} }
} }
void SMemZero(void* ptr, size_t bytes) {
uint8_t* ptrdata = static_cast<uint8_t*>(ptr);
for (size_t i = 0; i < bytes; i++) {
ptrdata[i] = 0;
}
}

View file

@ -18,4 +18,6 @@ void SMemFree(void* ptr, const char* filename, int32_t linenumber, uint32_t flag
void* SMemReAlloc(void* ptr, size_t bytes, const char* filename, int32_t linenumber, uint32_t flags = 0); void* SMemReAlloc(void* ptr, size_t bytes, const char* filename, int32_t linenumber, uint32_t flags = 0);
void SMemZero(void* ptr, size_t bytes);
#endif #endif

View file

@ -103,3 +103,21 @@ TEST_CASE("SMemReAlloc", "[memory]") {
SMemFree(ptr2); SMemFree(ptr2);
} }
} }
TEST_CASE("SMemZero", "[memory]") {
std::vector<uint8_t> data = { 1, 255, 128, 42, 69, 99, 13, 37 };
SECTION("zeroes out memory") {
std::vector<uint8_t> result = { 0, 0, 0, 0, 0, 99, 13, 37 };
SMemZero(data.data(), 5);
CHECK_THAT(data, Catch::Matchers::Equals(result));
}
SECTION("does nothing if size is 0") {
std::vector<uint8_t> change = data;
SMemZero(change.data(), 0);
CHECK_THAT(change, Catch::Matchers::Equals(data));
}
}