mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-02-03 16:39:08 +00:00
feat(memory): add STORM_FREE macro
This commit is contained in:
parent
05f8a7eebf
commit
547fc6d4f0
6 changed files with 30 additions and 8 deletions
|
|
@ -57,7 +57,7 @@ void DeleteIdHashTable(_IDHASHTABLE* pTable) {
|
||||||
delete pEntry;
|
delete pEntry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SMemFree(pTable->data, __FILE__, __LINE__, 0);
|
STORM_FREE(pTable->data);
|
||||||
delete pTable;
|
delete pTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -305,7 +305,7 @@ int32_t SEvtRegisterHandler(uint32_t type, uint32_t subtype, uint32_t id, uint32
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (s_typehashtable) {
|
if (s_typehashtable) {
|
||||||
SMemFree(s_typehashtable, __FILE__, __LINE__, 0);
|
STORM_FREE(s_typehashtable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s_typehashtable = pNewTable;
|
s_typehashtable = pNewTable;
|
||||||
|
|
@ -350,9 +350,9 @@ int32_t SEvtRegisterHandler(uint32_t type, uint32_t subtype, uint32_t id, uint32
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SMemFree(pTempTable, __FILE__, __LINE__, 0);
|
STORM_FREE(pTempTable);
|
||||||
if (pTypeHash->idhashtable->data) {
|
if (pTypeHash->idhashtable->data) {
|
||||||
SMemFree(pTypeHash->idhashtable->data, __FILE__, __LINE__, 0);
|
STORM_FREE(pTypeHash->idhashtable->data);
|
||||||
}
|
}
|
||||||
pTypeHash->idhashtable->data = pNewTable;
|
pTypeHash->idhashtable->data = pNewTable;
|
||||||
pTypeHash->idhashtable->size = newsize;
|
pTypeHash->idhashtable->size = newsize;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@
|
||||||
#define STORM_ALLOC_ZERO(bytes) \
|
#define STORM_ALLOC_ZERO(bytes) \
|
||||||
SMemAlloc(bytes, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY)
|
SMemAlloc(bytes, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY)
|
||||||
|
|
||||||
|
#define STORM_FREE(ptr) \
|
||||||
|
SMemFree(ptr, __FILE__, __LINE__, 0x0)
|
||||||
|
|
||||||
#define STORM_NEW(t) \
|
#define STORM_NEW(t) \
|
||||||
new(SMemAlloc(sizeof(t), __FILE__, __LINE__, 0x0)) t
|
new(SMemAlloc(sizeof(t), __FILE__, __LINE__, 0x0)) t
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,14 @@ HASHKEY_STR::HASHKEY_STR(const char* str) {
|
||||||
|
|
||||||
HASHKEY_STR::~HASHKEY_STR() {
|
HASHKEY_STR::~HASHKEY_STR() {
|
||||||
if (this->m_str) {
|
if (this->m_str) {
|
||||||
SMemFree(this->m_str, __FILE__, __LINE__);
|
STORM_FREE(this->m_str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HASHKEY_STR& HASHKEY_STR::operator=(const char* str) {
|
HASHKEY_STR& HASHKEY_STR::operator=(const char* str) {
|
||||||
if (this->m_str != str) {
|
if (this->m_str != str) {
|
||||||
if (this->m_str) {
|
if (this->m_str) {
|
||||||
SMemFree(this->m_str, __FILE__, __LINE__);
|
STORM_FREE(this->m_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_str = SStrDupA(str, __FILE__, __LINE__);
|
this->m_str = SStrDupA(str, __FILE__, __LINE__);
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ void TSHashTable<T, TKey>::InternalClear(int32_t warn) {
|
||||||
template <class T, class TKey>
|
template <class T, class TKey>
|
||||||
void TSHashTable<T, TKey>::InternalDelete(T* ptr) {
|
void TSHashTable<T, TKey>::InternalDelete(T* ptr) {
|
||||||
ptr->~T();
|
ptr->~T();
|
||||||
SMemFree(ptr, __FILE__, __LINE__, 0x0);
|
STORM_FREE(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T, class TKey>
|
template <class T, class TKey>
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ T* TSList<T, TGetLink>::DeleteNode(T* ptr) {
|
||||||
T* next = this->Next(ptr);
|
T* next = this->Next(ptr);
|
||||||
|
|
||||||
ptr->~T();
|
ptr->~T();
|
||||||
SMemFree(ptr, __FILE__, __LINE__, 0);
|
STORM_FREE(ptr);
|
||||||
|
|
||||||
return next;
|
return next;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,13 @@ TEST_CASE("SMemAlloc", "[memory]") {
|
||||||
SMemFree(ptr);
|
SMemFree(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("allocates memory with null filename") {
|
||||||
|
void* ptr = SMemAlloc(16, nullptr, 0);
|
||||||
|
REQUIRE(ptr != nullptr);
|
||||||
|
CHECK_NOTHROW(memset(ptr, 1, 16));
|
||||||
|
SMemFree(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
SECTION("allocates memory initialized to 0 with flag") {
|
SECTION("allocates memory initialized to 0 with flag") {
|
||||||
void* ptr = SMemAlloc(16, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY);
|
void* ptr = SMemAlloc(16, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY);
|
||||||
REQUIRE(ptr != nullptr);
|
REQUIRE(ptr != nullptr);
|
||||||
|
|
@ -111,6 +118,11 @@ TEST_CASE("SMemFree full args", "[memory]") {
|
||||||
SECTION("does nothing on nullptr") {
|
SECTION("does nothing on nullptr") {
|
||||||
CHECK_NOTHROW(SMemFree(nullptr, __FILE__, __LINE__));
|
CHECK_NOTHROW(SMemFree(nullptr, __FILE__, __LINE__));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("can take a null filename") {
|
||||||
|
void* ptr = STORM_ALLOC(10);
|
||||||
|
CHECK_NOTHROW(SMemFree(ptr, nullptr, 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("SMemMove", "[memory]") {
|
TEST_CASE("SMemMove", "[memory]") {
|
||||||
|
|
@ -153,6 +165,13 @@ TEST_CASE("SMemReAlloc", "[memory]") {
|
||||||
SMemFree(ptr);
|
SMemFree(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("allocates memory with null filename") {
|
||||||
|
void* ptr = SMemReAlloc(nullptr, 16, nullptr, 0);
|
||||||
|
REQUIRE(ptr != nullptr);
|
||||||
|
CHECK_NOTHROW(memset(ptr, 1, 16));
|
||||||
|
SMemFree(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
SECTION("allocates memory initialized to 0 with flag") {
|
SECTION("allocates memory initialized to 0 with flag") {
|
||||||
void* ptr = SMemReAlloc(nullptr, 16, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY);
|
void* ptr = SMemReAlloc(nullptr, 16, __FILE__, __LINE__, SMEM_FLAG_ZEROMEMORY);
|
||||||
REQUIRE(ptr != nullptr);
|
REQUIRE(ptr != nullptr);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue