svg_loader: fix grad update 21/288821/1
authorMira Grudzinska <m.grudzinska@samsung.com>
Fri, 7 Jan 2022 21:54:46 +0000 (22:54 +0100)
committerMichal Szczecinski <mihashco89@gmail.com>
Thu, 23 Feb 2023 09:46:26 +0000 (10:46 +0100)
The grad update should be handled after the postponed nodes are cloned.

Change-Id: I7391d416a81a9cb465ea9a01f5360c126abc53a2

src/loaders/svg/tvgSvgLoader.cpp

index 42f85a8..70f5edc 100644 (file)
@@ -2857,14 +2857,14 @@ void SvgLoader::run(unsigned tid)
     if (loaderData.doc) {
         _updateStyle(loaderData.doc, nullptr);
         auto defs = loaderData.doc->node.doc.defs;
-        if (defs) _updateGradient(loaderData.doc, &defs->node.defs.gradients);
-
-        if (loaderData.gradients.count > 0) _updateGradient(loaderData.doc, &loaderData.gradients);
 
         _updateComposite(loaderData.doc, loaderData.doc);
         if (defs) _updateComposite(loaderData.doc, defs);
 
         if (loaderData.cloneNodes.count > 0) _clonePostponedNodes(&loaderData.cloneNodes);
+
+        if (loaderData.gradients.count > 0) _updateGradient(loaderData.doc, &loaderData.gradients);
+        if (defs) _updateGradient(loaderData.doc, &defs->node.defs.gradients);
     }
     root = svgSceneBuild(loaderData.doc, vx, vy, vw, vh, w, h, preserveAspect, svgPath);
 }