浏览代码

Merge pull request #3579 from ihsinme/ihsinme-patch-210

fixed memory leak
Kim Kulling 4 年之前
父节点
当前提交
62e231b452
共有 2 个文件被更改,包括 7 次插入7 次删除
  1. 2 2
      code/AssetLib/AMF/AMFImporter_Geometry.cpp
  2. 5 5
      code/AssetLib/AMF/AMFImporter_Material.cpp

+ 2 - 2
code/AssetLib/AMF/AMFImporter_Geometry.cpp

@@ -61,12 +61,12 @@ namespace Assimp {
 void AMFImporter::ParseNode_Mesh(XmlNode &node) {
 void AMFImporter::ParseNode_Mesh(XmlNode &node) {
     AMFNodeElementBase *ne = nullptr;
     AMFNodeElementBase *ne = nullptr;
 
 
-    // create new mesh object.
-    ne = new AMFMesh(mNodeElement_Cur);
     // Check for child nodes
     // Check for child nodes
     if (0 != ASSIMP_stricmp(node.name(), "mesh")) {
     if (0 != ASSIMP_stricmp(node.name(), "mesh")) {
         return;
         return;
     }
     }
+    // create new mesh object.
+    ne = new AMFMesh(mNodeElement_Cur);
     bool found_verts = false, found_volumes = false;
     bool found_verts = false, found_volumes = false;
     if (!node.empty()) {
     if (!node.empty()) {
         ParseHelper_Node_Enter(ne);
         ParseHelper_Node_Enter(ne);

+ 5 - 5
code/AssetLib/AMF/AMFImporter_Material.cpp

@@ -165,15 +165,15 @@ void AMFImporter::ParseNode_Texture(XmlNode &node) {
 	std::string type = node.attribute("type").as_string();
 	std::string type = node.attribute("type").as_string();
 	bool tiled = node.attribute("tiled").as_bool();
 	bool tiled = node.attribute("tiled").as_bool();
 
 
-	// create new texture object.
-    AMFNodeElementBase *ne = new AMFTexture(mNodeElement_Cur);
-
-	AMFTexture& als = *((AMFTexture*)ne);// alias for convenience
-
     if (node.empty()) {
     if (node.empty()) {
 		return;
 		return;
     }
     }
 
 
+    // create new texture object.
+    AMFNodeElementBase *ne = new AMFTexture(mNodeElement_Cur);
+
+	AMFTexture& als = *((AMFTexture*)ne);// alias for convenience
+
     std::string enc64_data = node.value();
     std::string enc64_data = node.value();
 	// Check for child nodes
 	// Check for child nodes