Parcourir la source

scenecombiner: fix leak.

Kim Kulling il y a 5 ans
Parent
commit
c6131ce38a
2 fichiers modifiés avec 5 ajouts et 5 suppressions
  1. 1 4
      code/Common/SceneCombiner.cpp
  2. 4 1
      include/assimp/mesh.h

+ 1 - 4
code/Common/SceneCombiner.cpp

@@ -979,7 +979,7 @@ void GetArrayCopy(Type*& dest, ai_uint num ) {
 
     dest = new Type[num];
     ::memcpy(dest, old, sizeof(Type) * num);
-    }
+}
 
 // ------------------------------------------------------------------------------------------------
 void SceneCombiner::CopySceneFlat(aiScene** _dest,const aiScene* src) {
@@ -1269,9 +1269,6 @@ void SceneCombiner::Copy(aiBone** _dest, const aiBone* src) {
 
     // get a flat copy
     *dest = *src;
-
-    // and reallocate all arrays
-    GetArrayCopy( dest->mWeights, dest->mNumWeights );
 }
 
 // ------------------------------------------------------------------------------------------------

+ 4 - 1
include/assimp/mesh.h

@@ -308,7 +308,10 @@ struct aiBone {
 
     //! Copy constructor
     aiBone(const aiBone &other) :
-            mName(other.mName), mNumWeights(other.mNumWeights), mWeights(nullptr), mOffsetMatrix(other.mOffsetMatrix) {
+            mName(other.mName),
+            mNumWeights(other.mNumWeights),
+            mWeights(nullptr),
+            mOffsetMatrix(other.mOffsetMatrix) {
         if (other.mWeights && other.mNumWeights) {
             mWeights = new aiVertexWeight[mNumWeights];
             ::memcpy(mWeights, other.mWeights, mNumWeights * sizeof(aiVertexWeight));