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; }