mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-07-11 07:19:20 +00:00
Prevent dangling pointer
This commit is contained in:
@ -39,9 +39,9 @@ public:
|
||||
{
|
||||
for (int i = 0; i < HashMapCapacity; i++)
|
||||
if (Nodes[i] != nullptr)
|
||||
delete Nodes[i];
|
||||
delete[] Nodes;
|
||||
delete DummyNode;
|
||||
delete Nodes[i], Nodes[i] = nullptr;
|
||||
delete[] Nodes, Nodes = nullptr;
|
||||
delete DummyNode, DummyNode = nullptr;
|
||||
}
|
||||
|
||||
int HashCode(K Key) { return Key % HashMapCapacity; }
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
~smart_ptr()
|
||||
{
|
||||
spdbg("Smart pointer deleted (%#lx)", m_RealPointer);
|
||||
delete (m_RealPointer);
|
||||
delete m_RealPointer, m_RealPointer = nullptr;
|
||||
}
|
||||
|
||||
T &operator*()
|
||||
@ -151,8 +151,8 @@ public:
|
||||
if (m_ReferenceCounter->Get() == 0)
|
||||
{
|
||||
spdbg("[%#lx] Shared pointer deleted (ptr=%#lx, ref=%#lx)", this, m_RealPointer, m_ReferenceCounter);
|
||||
delete m_ReferenceCounter;
|
||||
delete m_RealPointer;
|
||||
delete m_ReferenceCounter, m_ReferenceCounter = nullptr;
|
||||
delete m_RealPointer, m_RealPointer = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@ -188,8 +188,8 @@ public:
|
||||
(*m_ReferenceCounter)--;
|
||||
if (m_ReferenceCounter->Get() == 0)
|
||||
{
|
||||
delete m_ReferenceCounter;
|
||||
delete m_RealPointer;
|
||||
delete m_ReferenceCounter;
|
||||
}
|
||||
m_RealPointer = Pointer;
|
||||
m_ReferenceCounter = new Counter();
|
||||
@ -202,15 +202,13 @@ public:
|
||||
spdbg("[%#lx] Shared pointer reset (ptr=%#lx, ref=%#lx)", this, m_RealPointer, m_ReferenceCounter);
|
||||
if (m_ReferenceCounter->Get() == 1)
|
||||
{
|
||||
delete m_RealPointer;
|
||||
delete m_ReferenceCounter;
|
||||
delete m_RealPointer, m_RealPointer = nullptr;
|
||||
delete m_ReferenceCounter, m_ReferenceCounter = nullptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
(*m_ReferenceCounter)--;
|
||||
}
|
||||
m_RealPointer = nullptr;
|
||||
m_ReferenceCounter = nullptr;
|
||||
}
|
||||
|
||||
void swap(shared_ptr<T> &Other)
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
~String()
|
||||
{
|
||||
strdbg("String deleted: \"%s\" (data: %#lx, length: %d, capacity: %d)", this->m_Data, this->m_Data, this->m_Length, this->m_Capacity);
|
||||
delete[] this->m_Data;
|
||||
delete[] this->m_Data, this->m_Data = nullptr;
|
||||
}
|
||||
|
||||
int length() const
|
||||
|
@ -71,8 +71,7 @@ public:
|
||||
VectorCapacity = 0;
|
||||
if (VectorBuffer != nullptr)
|
||||
{
|
||||
delete[] VectorBuffer;
|
||||
VectorBuffer = nullptr;
|
||||
delete[] VectorBuffer, VectorBuffer = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@ -230,8 +229,7 @@ public:
|
||||
VectorSize = 0;
|
||||
if (VectorBuffer != nullptr)
|
||||
{
|
||||
delete[] VectorBuffer;
|
||||
VectorBuffer = nullptr;
|
||||
delete[] VectorBuffer, VectorBuffer = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user