Explorar el Código

Fix use-after-delete

Ben Payne hace 11 años
padre
commit
dc780ddcae
Se han modificado 1 ficheros con 3 adiciones y 2 borrados
  1. 3 2
      Engine/source/materials/materialList.cpp

+ 3 - 2
Engine/source/materials/materialList.cpp

@@ -263,8 +263,6 @@ void MaterialList::clearMatInstList()
       if (mMatInstList[i])
       {
          BaseMatInstance* current = mMatInstList[i];
-         delete current;
-         mMatInstList[i] = NULL;
 
          // ok, since ts material lists can remap difference indexes to the same object 
          // we need to make sure that we don't delete the same memory twice.  walk the 
@@ -272,6 +270,9 @@ void MaterialList::clearMatInstList()
          for (U32 j=0; j<mMatInstList.size(); j++)
             if (mMatInstList[j] == current)
                mMatInstList[j] = NULL;
+
+         mMatInstList[i] = NULL;
+         delete current;
       }
    }
 }