From 56c485913869ad8cceb1cfbd853b679a06168939 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Sat, 2 Mar 2024 06:26:51 +0900 Subject: [PATCH] saver: ++robustness do not delete the given picture if the reference counting is more than 0. --- src/renderer/tvgSaver.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/renderer/tvgSaver.cpp b/src/renderer/tvgSaver.cpp index 11eb24d4..068b5ee6 100644 --- a/src/renderer/tvgSaver.cpp +++ b/src/renderer/tvgSaver.cpp @@ -22,6 +22,7 @@ #include "tvgCommon.h" #include "tvgSaveModule.h" +#include "tvgPaint.h" #ifdef THORVG_TVG_SAVER_SUPPORT #include "tvgTvgSaver.h" @@ -123,7 +124,7 @@ Result Saver::save(std::unique_ptr paint, const string& path, bool compre //Already on saving an other resource. if (pImpl->saveModule) { - delete(p); + if (P(p)->refCnt == 0) delete(p); return Result::InsufficientCondition; } @@ -132,12 +133,12 @@ Result Saver::save(std::unique_ptr paint, const string& path, bool compre pImpl->saveModule = saveModule; return Result::Success; } else { - delete(p); + if (P(p)->refCnt == 0) delete(p); delete(saveModule); return Result::Unknown; } } - delete(p); + if (P(p)->refCnt == 0) delete(p); return Result::NonSupport; }