rhi: Fix memory leak

The leak can be reproduced by running the test project from QTBUG-63557
with asan, although that report is about yet another leak.
[ChangeLog][gui][QRhiGles2] Fixed a memory leak in QRhiGles2

Task-number: QTBUG-63557
Pick-to: 6.1
Change-Id: Ic4d346abb36a5666feb3ceb881865b029f5a6945
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
bb10
Robert Löhning 2021-05-07 15:28:00 +02:00
parent edceff30b4
commit 1a63217021
1 changed files with 4 additions and 3 deletions

View File

@ -4163,6 +4163,9 @@ QGles2Buffer::~QGles2Buffer()
void QGles2Buffer::destroy()
{
delete[] data;
data = nullptr;
if (!buffer)
return;
@ -4170,10 +4173,7 @@ void QGles2Buffer::destroy()
e.type = QRhiGles2::DeferredReleaseEntry::Buffer;
e.buffer.buffer = buffer;
buffer = 0;
delete[] data;
data = nullptr;
QRHI_RES_RHI(QRhiGles2);
rhiD->releaseQueue.append(e);
@ -4197,6 +4197,7 @@ bool QGles2Buffer::create()
qWarning("Uniform buffer: multiple usages specified, this is not supported by the OpenGL backend");
return false;
}
delete[] data;
data = new char[nonZeroSize];
QRHI_PROF_F(newBuffer(this, uint(nonZeroSize), 0, 1));
return true;