mirror of
https://github.com/YACReader/yacreader
synced 2025-07-19 05:24:57 -04:00
fixed memory leak in CompressedArchive
This commit is contained in:
@ -101,7 +101,9 @@ CompressedArchive::CompressedArchive(const QString & filePath, QObject *parent)
|
||||
|
||||
CompressedArchive::~CompressedArchive()
|
||||
{
|
||||
//TODO
|
||||
//szInterface->fileSpec->Release();
|
||||
delete szInterface;
|
||||
delete sevenzLib;
|
||||
}
|
||||
|
||||
void CompressedArchive::loadFunctions()
|
||||
@ -185,7 +187,7 @@ QList<QByteArray> CompressedArchive::getAllData(const QVector<quint32> & indexes
|
||||
{
|
||||
qDebug() << "Extract Error" << endl;
|
||||
}
|
||||
|
||||
|
||||
return extractCallbackSpec->allFiles;
|
||||
}
|
||||
|
||||
@ -205,10 +207,8 @@ QByteArray CompressedArchive::getRawDataAtIndex(int index)
|
||||
{
|
||||
qDebug() << "Extract Error" << endl;
|
||||
}
|
||||
|
||||
QByteArray rawData((char *)extractCallbackSpec->data,extractCallbackSpec->newFileSize);
|
||||
|
||||
return rawData;
|
||||
|
||||
return QByteArray((char *)extractCallbackSpec->data,extractCallbackSpec->newFileSize);
|
||||
}
|
||||
return QByteArray();
|
||||
}
|
@ -92,6 +92,7 @@ public:
|
||||
UInt64 newFileSize;
|
||||
|
||||
CArchiveExtractCallback(bool c = false,ExtractDelegate * d = 0) : PasswordIsDefined(false),all(c),delegate(d) {}
|
||||
~CArchiveExtractCallback() {MidFree(data);}
|
||||
};
|
||||
|
||||
void CArchiveExtractCallback::Init(IInArchive *archiveHandler, const UString &directoryPath)
|
||||
@ -259,6 +260,7 @@ STDMETHODIMP CArchiveExtractCallback::SetOperationResult(Int32 operationResult)
|
||||
{
|
||||
QByteArray rawData((char *)data,newFileSize);
|
||||
MidFree(data);
|
||||
data = 0;
|
||||
if(delegate != 0)
|
||||
delegate->fileExtracted(_index,rawData);
|
||||
else
|
||||
|
Reference in New Issue
Block a user