Explorar el Código

Merge pull request #1495 from Azaezel/alpha41/safeSafties

add extra safeties to safe_delete macros
Brian Roberts hace 3 meses
padre
commit
ccd30a19cc

+ 2 - 2
Engine/source/core/util/safeDelete.h

@@ -34,7 +34,7 @@
 /// @param a Object to delete
 /// @see #SAFE_DELETE_ARRAY(), #SAFE_DELETE_OBJECT(), #SAFE_FREE(), #SAFE_FREE_REFERENCE()
 //-----------------------------------------------------------------------------
-#define SAFE_DELETE(a) {delete (a); (a) = NULL; }
+#define SAFE_DELETE(a) {if((a) != NULL) { delete (a); (a) = NULL; } }
 
 #undef  SAFE_DELETE_ARRAY
 
@@ -44,7 +44,7 @@
 /// @param a Array to delete
 /// @see #SAFE_DELETE(), #SAFE_DELETE_OBJECT(), #SAFE_FREE(), #SAFE_FREE_REFERENCE()
 //-----------------------------------------------------------------------------
-#define SAFE_DELETE_ARRAY(a) { delete [] (a); (a) = NULL; }
+#define SAFE_DELETE_ARRAY(a) { if((a) != NULL) { delete [] (a); (a) = NULL; } }
 
 #undef  SAFE_DELETE_OBJECT
 

+ 2 - 1
Engine/source/gfx/gfxTextureObject.cpp

@@ -144,7 +144,8 @@ GFXTextureObject::~GFXTextureObject()
 
 void GFXTextureObject::destroySelf()
 {
-   mDevice->mTextureManager->requestDeleteTexture(this);
+   if (mDevice && mDevice->mTextureManager)
+      mDevice->mTextureManager->requestDeleteTexture(this);
 }
 
 //-----------------------------------------------------------------------------