Bläddra i källkod

Do not crash when a NULL pointer is passed to deallocate() since it is the default behavior of free()/delete

Daniele Bartolini 12 år sedan
förälder
incheckning
5bf766ba72
1 ändrade filer med 3 tillägg och 1 borttagningar
  1. 3 1
      engine/core/mem/HeapAllocator.cpp

+ 3 - 1
engine/core/mem/HeapAllocator.cpp

@@ -67,6 +67,8 @@ void* HeapAllocator::allocate(size_t size, size_t align)
 //-----------------------------------------------------------------------------
 void HeapAllocator::deallocate(void* data)
 {
+	if (!data) return;
+
 	Header* h = header(data);
 
 	m_allocated_size -= h->size;
@@ -120,7 +122,7 @@ void HeapAllocator::pad(Header* header, void* data)
 {
 	uint32_t* p = (uint32_t*)(header + 1);
 
-	while (p != (uint32_t*)data)
+	while (p != data)
 	{
 		*p = memory::PADDING_VALUE;
 		p++;