main : Allocate rombuffer objects on stack

* Less messy, decreases chances of memory leaks

* Underlying implementation of qbytearray uses heap (hopefully?)

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>
This commit is contained in:
Madhav Kanbur
2021-01-14 18:55:34 +05:30
parent 114fb0cba2
commit 63c58eba9a

View File

@ -1645,14 +1645,12 @@ void MainWindow::onOpenFileArchive()
return; return;
} }
QByteArray *romBuffer = new QByteArray(); QByteArray romBuffer;
QString romFileName = pickAndExtractFileFromArchive(archiveFileName, romBuffer); QString romFileName = pickAndExtractFileFromArchive(archiveFileName, &romBuffer);
if(!romFileName.isEmpty()) if(!romFileName.isEmpty())
{ {
loadROM(romBuffer, archiveFileName, romFileName); loadROM(&romBuffer, archiveFileName, romFileName);
} }
delete romBuffer;
} }
QString MainWindow::pickAndExtractFileFromArchive(QString archiveFileName, QByteArray *romBuffer) QString MainWindow::pickAndExtractFileFromArchive(QString archiveFileName, QByteArray *romBuffer)
@ -1753,14 +1751,13 @@ void MainWindow::onClickRecentFile()
{ {
// Archives // Archives
QString archiveFileName = fileName; QString archiveFileName = fileName;
QByteArray *romBuffer = new QByteArray; QByteArray romBuffer;
QString romFileName = MainWindow::pickAndExtractFileFromArchive(archiveFileName, romBuffer); QString romFileName = MainWindow::pickAndExtractFileFromArchive(archiveFileName, &romBuffer);
if(!romFileName.isEmpty()) if(!romFileName.isEmpty())
{ {
emuThread->emuPause(); emuThread->emuPause();
loadROM(romBuffer, archiveFileName, romFileName); loadROM(&romBuffer, archiveFileName, romFileName);
} }
delete romBuffer;
} }
} }