diff --git a/src/lib/sw_engine/tvgSwRenderer.cpp b/src/lib/sw_engine/tvgSwRenderer.cpp index e425420f..c8209f7e 100644 --- a/src/lib/sw_engine/tvgSwRenderer.cpp +++ b/src/lib/sw_engine/tvgSwRenderer.cpp @@ -56,6 +56,11 @@ struct SwTask : Task } virtual bool dispose() = 0; + + virtual ~SwTask() + { + free(transform); + } }; @@ -536,10 +541,8 @@ bool SwRenderer::dispose(RenderData data) { auto task = static_cast(data); if (!task) return true; - task->done(); task->dispose(); - if (task->transform) free(task->transform); delete(task); return true;