From a741778dabd2025f662620475539dd9ca1f9bbb0 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 efee3aa1..a5eaefc0 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(unique_ptr paint, const string& path, uint32_t quality //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(unique_ptr paint, const string& path, uint32_t quality 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; }