Browse Source

scenecombiner: fix leak.

Kim Kulling 5 years ago
parent
commit
c6131ce38a
2 changed files with 5 additions and 5 deletions
  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];
     dest = new Type[num];
     ::memcpy(dest, old, sizeof(Type) * num);
     ::memcpy(dest, old, sizeof(Type) * num);
-    }
+}
 
 
 // ------------------------------------------------------------------------------------------------
 // ------------------------------------------------------------------------------------------------
 void SceneCombiner::CopySceneFlat(aiScene** _dest,const aiScene* src) {
 void SceneCombiner::CopySceneFlat(aiScene** _dest,const aiScene* src) {
@@ -1269,9 +1269,6 @@ void SceneCombiner::Copy(aiBone** _dest, const aiBone* src) {
 
 
     // get a flat copy
     // get a flat copy
     *dest = *src;
     *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
     //! Copy constructor
     aiBone(const aiBone &other) :
     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) {
         if (other.mWeights && other.mNumWeights) {
             mWeights = new aiVertexWeight[mNumWeights];
             mWeights = new aiVertexWeight[mNumWeights];
             ::memcpy(mWeights, other.mWeights, mNumWeights * sizeof(aiVertexWeight));
             ::memcpy(mWeights, other.mWeights, mNumWeights * sizeof(aiVertexWeight));