diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 7bc1e9040c6..751a16c0511 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -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;