From 70459b4d1f96e061f7e0d7c8c4ef41d32711df87 Mon Sep 17 00:00:00 2001 From: UnionTech-Software Date: Mon, 10 Mar 2025 23:24:26 +0800 Subject: [PATCH] Fix memory leak in OpenGEXImporter (#6036) --- code/AssetLib/OpenGEX/OpenGEXImporter.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/AssetLib/OpenGEX/OpenGEXImporter.cpp b/code/AssetLib/OpenGEX/OpenGEXImporter.cpp index 8bfa9ec41..6870eb8e9 100644 --- a/code/AssetLib/OpenGEX/OpenGEXImporter.cpp +++ b/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) { // open source file - IOStream *file = pIOHandler->Open(filename, "rb"); + std::unique_ptr file(pIOHandler->Open(filename, "rb")); if (!file) { throw DeadlyImportError("Failed to open file ", filename); } std::vector buffer; - TextFileToBuffer(file, buffer); - pIOHandler->Close(file); + TextFileToBuffer(file.get(), buffer); OpenDDLParser myParser; myParser.setLogCallback(&logDDLParserMessage);