Browse Source

Fix memory leak in OpenGEXImporter (#6036)

UnionTech-Software 6 months ago
parent
commit
70459b4d1f
1 changed files with 2 additions and 3 deletions
  1. 2 3
      code/AssetLib/OpenGEX/OpenGEXImporter.cpp

+ 2 - 3
code/AssetLib/OpenGEX/OpenGEXImporter.cpp

@@ -289,14 +289,13 @@ bool OpenGEXImporter::CanRead(const std::string &file, IOSystem *pIOHandler, boo
 //------------------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------------------
 void OpenGEXImporter::InternReadFile(const std::string &filename, aiScene *pScene, IOSystem *pIOHandler) {
 void OpenGEXImporter::InternReadFile(const std::string &filename, aiScene *pScene, IOSystem *pIOHandler) {
     // open source file
     // open source file
-    IOStream *file = pIOHandler->Open(filename, "rb");
+    std::unique_ptr<IOStream> file(pIOHandler->Open(filename, "rb"));
     if (!file) {
     if (!file) {
         throw DeadlyImportError("Failed to open file ", filename);
         throw DeadlyImportError("Failed to open file ", filename);
     }
     }
 
 
     std::vector<char> buffer;
     std::vector<char> buffer;
-    TextFileToBuffer(file, buffer);
-    pIOHandler->Close(file);
+    TextFileToBuffer(file.get(), buffer);
 
 
     OpenDDLParser myParser;
     OpenDDLParser myParser;
     myParser.setLogCallback(&logDDLParserMessage);
     myParser.setLogCallback(&logDDLParserMessage);