diff --git a/code/3MF/D3MFOpcPackage.cpp b/code/3MF/D3MFOpcPackage.cpp index 739e0cfcc..873ba8ee8 100644 --- a/code/3MF/D3MFOpcPackage.cpp +++ b/code/3MF/D3MFOpcPackage.cpp @@ -149,14 +149,14 @@ D3MFOpcPackage::D3MFOpcPackage(IOSystem* pIOHandler, const std::string& rFile) ASSIMP_LOG_DEBUG(rootFile); + mZipArchive->Close(fileStream); + mRootStream = mZipArchive->Open(rootFile.c_str()); ai_assert( mRootStream != nullptr ); if ( nullptr == mRootStream ) { throw DeadlyExportError( "Cannot open root-file in archive : " + rootFile ); } - mZipArchive->Close( fileStream ); - } else if( file == D3MF::XmlTag::CONTENT_TYPES_ARCHIVE) { ASSIMP_LOG_WARN_F("Ignored file of unsupported type CONTENT_TYPES_ARCHIVES",file); } else { @@ -167,7 +167,7 @@ D3MFOpcPackage::D3MFOpcPackage(IOSystem* pIOHandler, const std::string& rFile) } D3MFOpcPackage::~D3MFOpcPackage() { - // empty + mZipArchive->Close(mRootStream); } IOStream* D3MFOpcPackage::RootStream() const { diff --git a/code/Collada/ColladaParser.cpp b/code/Collada/ColladaParser.cpp index 20a881860..646ec473d 100644 --- a/code/Collada/ColladaParser.cpp +++ b/code/Collada/ColladaParser.cpp @@ -165,7 +165,7 @@ std::string ColladaParser::ReadZaeManifest(ZipArchiveIOSystem &zip_archive) { } std::unique_ptr mIOWrapper(new CIrrXML_IOStreamReader(manifestfile.get())); - irr::io::IrrXMLReader* manifest_reader = irr::io::createIrrXMLReader(mIOWrapper.get()); + std::unique_ptr manifest_reader(irr::io::createIrrXMLReader(mIOWrapper.get())); while (manifest_reader->read()) {