diff --git a/src/renderer/gl_engine/tvgGlRenderer.cpp b/src/renderer/gl_engine/tvgGlRenderer.cpp index e040ce29..eec62995 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.cpp +++ b/src/renderer/gl_engine/tvgGlRenderer.cpp @@ -950,7 +950,10 @@ bool GlRenderer::renderImage(void* data) auto task = new GlRenderTask(mPrograms[RT_Image].get()); task->setDrawDepth(drawDepth); - if (!sdata->geometry->draw(task, mGpuBuffer.get(), RenderUpdateFlag::Image)) return true; + if (!sdata->geometry->draw(task, mGpuBuffer.get(), RenderUpdateFlag::Image)) { + delete task; + return true; + } // matrix buffer {