]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 12 May 2010 16:30:26 +0000 (16:30 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 12 May 2010 16:30:26 +0000 (16:30 +0000)
ChangeLog
magick/artifact.c
magick/draw.c
magick/morphology.c
magick/property.c
magick/splay-tree.c
magick/splay-tree.h

index d57f426d77096d55aeb5ef994b7f5eff2efda87f..f601906e13bc427023f062d0371a3fa5a67806e5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2010-05-12  6.6.1-8 Cristy  <quetzlzacatenango@image...>
+  * Increase the estimated # points for the path drawing primitive.
+
 2010-05-12  6.6.1-8 Anthony Thyssen <A.Thyssen@griffith...>
   * Implementation of Pattern Matching Morphology methods
     HitAndMiss, Thicken, Thinning
index ca4cb786bb13d80e025a2005aca8691e83f9f931..6ec9a884fa9124f7a30768b85d3af6f0101400b4 100644 (file)
@@ -248,8 +248,7 @@ MagickExport void DestroyImageArtifacts(Image *image)
 %
 %  GetImageArtifact() gets a value associated with an image artifact.
 %
-%  WARNING: The pointer returned points directly to stored values.
-%  Do not free the memory they pointed to.
+%  Note, the artifact is a constant.  Do not attempt to free it.
 %
 %  The format of the GetImageArtifact method is:
 %
index ce8b658b44adafdfb8e1832fe51fd12b29aa1f72..8ec44e72a2805b9f6f6298efdb813014dcb0a515 100644 (file)
@@ -2886,7 +2886,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
             }
           length++;
         }
-        length=6*(3*length/2+BezierQuantum)+360+1;
+        length=k*BezierQuantum;
         break;
       }
       case CirclePrimitive:
@@ -2912,8 +2912,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
         /*
           Resize based on speculative points required by primitive.
         */
-        while ((unsigned long) (i+length) >= number_points)
-          number_points<<=1;
+        number_points+=length+1;
         primitive_info=(PrimitiveInfo *) ResizeQuantumMemory(primitive_info,
           (size_t) number_points,sizeof(*primitive_info));
         if (primitive_info == (PrimitiveInfo *) NULL)
@@ -3111,9 +3110,9 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
         graphic_context[n]->bounds.y2=point.y;
       if (primitive_info[i].primitive == ImagePrimitive)
         break;
+      if (i >= (long) number_points)
+        ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
     }
-    if (i >= (long) number_points)
-      ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
     if (graphic_context[n]->render != MagickFalse)
       {
         if ((n != 0) && (graphic_context[n]->clip_mask != (char *) NULL) &&
index 4f6b4c668abfb810c308af9dfe04ceb5741f2071..43e9e9dde4c6794a5846cdc166dc1f78f55f1721 100644 (file)
@@ -1322,6 +1322,7 @@ static unsigned long MorphologyPrimative(const Image *image, Image
       result.green   = (MagickRealType) p[r].green;
       result.blue    = (MagickRealType) p[r].blue;
       result.opacity = QuantumRange - (MagickRealType) p[r].opacity;
+      result.index   = 0;
       if ( image->colorspace == CMYKColorspace)
          result.index   = (MagickRealType) p_indexes[r];
 
index a1d79f9b26a95518fa88e92a76eee94840209ac4..2b224908a8681799a4ffc632047302db52c73fdc 100644 (file)
@@ -2396,8 +2396,6 @@ MagickExport const char *GetMagickProperty(const ImageInfo *image_info,
     {
       if (LocaleNCompare("unique",property,6) == 0)
         {
-          if (*image_info->unique == '\0')
-            (void) AcquireUniqueFilename(image_info->unique);
           (void) CopyMagickString(filename,image_info->unique,MaxTextExtent);
           (void) CopyMagickString(value,filename,MaxTextExtent);
           break;
index cdac5eb4d08ad468a91a2ca397731f2a9b3df3ba..7e755a8648873f6a01562f9af1210b20071774da 100644 (file)
@@ -751,7 +751,7 @@ MagickExport SplayTreeInfo *DestroySplayTree(SplayTreeInfo *splay_tree)
 %
 %  The format of the GetNextKeyInSplayTree method is:
 %
-%      void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
+%      const void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
 %
 %  A description of each parameter follows:
 %
@@ -760,7 +760,7 @@ MagickExport SplayTreeInfo *DestroySplayTree(SplayTreeInfo *splay_tree)
 %    o key: the key.
 %
 */
-MagickExport void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
+MagickExport const void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
 {
   register NodeInfo
     *node;
@@ -805,7 +805,7 @@ MagickExport void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
 %
 %  The format of the GetNextValueInSplayTree method is:
 %
-%      void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
+%      const void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
 %
 %  A description of each parameter follows:
 %
@@ -814,7 +814,7 @@ MagickExport void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
 %    o key: the key.
 %
 */
-MagickExport void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
+MagickExport const void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
 {
   register NodeInfo
     *node;
@@ -857,12 +857,12 @@ MagickExport void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
 %
 %  GetValueFromSplayTree() gets a value from the splay-tree by its key.
 %
-%  WARNING: The pointer returned points directly into the values stored in
-%  tree. Do not free the memory pointed to.
+%  Note, the value is a constant.  Do not attempt to free it.
 %
 %  The format of the GetValueFromSplayTree method is:
 %
-%      void *GetValueFromSplayTree(SplayTreeInfo *splay_tree,const void *key)
+%      const void *GetValueFromSplayTree(SplayTreeInfo *splay_tree,
+%        const void *key)
 %
 %  A description of each parameter follows:
 %
@@ -871,7 +871,7 @@ MagickExport void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
 %    o key: the key.
 %
 */
-MagickExport void *GetValueFromSplayTree(SplayTreeInfo *splay_tree,
+MagickExport const void *GetValueFromSplayTree(SplayTreeInfo *splay_tree,
   const void *key)
 {
   int
index 0969fedf0365b6bd0331095ab0081ba3cbdce7ba..64fa7f3211c569ea280d9dac73f85beb76059655 100644 (file)
@@ -30,6 +30,9 @@ extern MagickExport MagickBooleanType
   DeleteNodeByValueFromSplayTree(SplayTreeInfo *,const void *),
   DeleteNodeFromSplayTree(SplayTreeInfo *,const void *);
 
+extern MagickExport const void
+  *GetValueFromSplayTree(SplayTreeInfo *,const void *);
+
 extern MagickExport int
   CompareSplayTreeString(const void *,const void *),
   CompareSplayTreeStringInfo(const void *,const void *);
@@ -46,7 +49,6 @@ extern MagickExport unsigned long
 extern MagickExport void
   *GetNextKeyInSplayTree(SplayTreeInfo *),
   *GetNextValueInSplayTree(SplayTreeInfo *),
-  *GetValueFromSplayTree(SplayTreeInfo *,const void *),
   *RemoveNodeByValueFromSplayTree(SplayTreeInfo *,const void *),
   *RemoveNodeFromSplayTree(SplayTreeInfo *,const void *),
   ResetSplayTree(SplayTreeInfo *),