]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sat, 24 Feb 2018 02:03:25 +0000 (21:03 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sat, 24 Feb 2018 02:03:25 +0000 (21:03 -0500)
MagickCore/draw.c

index f0301ad5f3cb9f14363a0a049abeb0e015762f03..a3f06dc98e71cd5ad52c8ef5506342db18371d9e 100644 (file)
@@ -1737,6 +1737,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
     number_stops;
 
   ssize_t
+    defsDepth,
     j,
     k,
     n;
@@ -1803,6 +1804,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
   extent=strlen(token)+MagickPathExtent;
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
+  defsDepth=0;
   status=MagickTrue;
   for (q=primitive; *q != '\0'; )
   {
@@ -2287,7 +2289,12 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
             if (LocaleCompare("clip-path",token) == 0)
               break;
             if (LocaleCompare("defs",token) == 0)
-              break;
+              {
+                defsDepth--;
+                graphic_context[n]->render=defsDepth > 0 ? MagickFalse :
+                  MagickTrue;
+                break;
+              }
             if (LocaleCompare("gradient",token) == 0)
               break;
             if (LocaleCompare("graphic-context",token) == 0)
@@ -2506,7 +2513,12 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
                 break;
               }
             if (LocaleCompare("defs",token) == 0)
-              break;
+              {
+                defsDepth++;
+                graphic_context[n]->render=defsDepth > 0 ? MagickFalse :
+                  MagickTrue;
+                break;
+              }
             status=MagickFalse;
             break;
           }