tvg_saver: fix a wrong logic by mistake.
authorHermet Park <chuneon.park@samsung.com>
Tue, 7 Sep 2021 09:54:42 +0000 (18:54 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Wed, 8 Sep 2021 08:11:43 +0000 (17:11 +0900)
an incorrect logic was introduced by mistake.

that breaks the tvg memory chunks.

now recover it.

@Issues: https://github.com/Samsung/thorvg/issues/774

src/examples/images/test.tvg
src/savers/tvg/tvgTvgSaver.cpp

index 4c628e3..78bb48f 100644 (file)
Binary files a/src/examples/images/test.tvg and b/src/examples/images/test.tvg differ
index 21d3f12..bba2b9b 100644 (file)
@@ -542,9 +542,9 @@ TvgBinCounter TvgSaver::serializeShape(const Shape* shape, const Matrix* pTransf
     if (pTransform) transform = _multiply(pTransform, &transform);
 
     //fill rule
-    if (auto flag = static_cast<TvgBinFlag>(shape->fillRule()))
+    if (auto flag = static_cast<TvgBinFlag>(shape->fillRule())) {
         cnt = writeTagProperty(TVG_TAG_SHAPE_FILLRULE, SIZE(TvgBinFlag), &flag);
-
+    }
 
     bool preTransform = true;
 
@@ -602,9 +602,9 @@ TvgBinCounter TvgSaver::serializePicture(const Picture* picture, const Matrix* p
             reserveCount();
             auto cnt = serializeChildren(it, &transform, true) + serializePaint(picture, pTransform);
             writeReservedCount(cnt);
+            delete(it);
+            return SERIAL_DONE(cnt);
         }
-        delete(it);
-        return SERIAL_DONE(cnt);
     }
     delete(it);