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
Change-Id: Ic4d346abb36a5666feb3ceb881865b029f5a6945
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
(cherry picked from commit 1a63217021f35d09c92457fcad9d513f8f90bc4d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Robert Löhning 2021-05-07 15:28:00 +02:00 committed by Qt Cherry-pick Bot
parent d77722a799
commit 90fe6301ba

View File

@ -4134,6 +4134,9 @@ QGles2Buffer::~QGles2Buffer()
void QGles2Buffer::destroy()
{
delete[] data;
data = nullptr;
if (!buffer)
return;
@ -4141,10 +4144,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);
@ -4168,6 +4168,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;