]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 10 Sep 2009 23:10:14 +0000 (23:10 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 10 Sep 2009 23:10:14 +0000 (23:10 +0000)
magick/cache.c
version.sh

index 7b2882813c1ffea9a592fb1a42c8844e8e9301c2..0a0a0b36465e1f16cde5604318fddbd9ce59283e 100644 (file)
@@ -1471,6 +1471,9 @@ MagickExport Cache DestroyPixelCache(Cache cache)
   CacheType
     type;
 
+  MapMode
+    mode;
+
   assert(cache != (Cache) NULL);
   cache_info=(CacheInfo *) cache;
   assert(cache_info->signature == MagickSignature);
@@ -1488,8 +1491,9 @@ MagickExport Cache DestroyPixelCache(Cache cache)
   if (cache_resources != (SplayTreeInfo *) NULL)
     (void) DeleteNodeByValueFromSplayTree(cache_resources,cache_info);
   type=cache_info->type;
+  mode=cache_info->mode;
   RelinquishPixelCachePixels(cache_info);
-  if ((type == MapCache) || (type == DiskCache))
+  if ((mode != ReadMode) && ((type == MapCache) || (type == DiskCache)))
     (void) RelinquishUniqueFileResource(cache_info->cache_filename);
   *cache_info->cache_filename='\0';
   if (cache_info->nexus_info != (NexusInfo **) NULL)
@@ -2099,7 +2103,7 @@ MagickExport Cache GetImagePixelCache(Image *image,
   cache_info=(CacheInfo *) image->cache;
   destroy=MagickFalse;
   (void) LockSemaphoreInfo(cache_info->semaphore);
-  if (cache_info->reference_count > 1)
+  if ((cache_info->reference_count > 1) || (cache_info->mode == ReadMode))
     {
       Image
         clone_image;
@@ -4098,6 +4102,9 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
 %
 %    o filename: the persistent pixel cache filename.
 %
+%    o attach: A value other than zero initializes the persistent pixel
+%      cache.
+%
 %    o initialize: A value other than zero initializes the persistent pixel
 %      cache.
 %
@@ -4143,7 +4150,7 @@ MagickExport MagickBooleanType PersistPixelCache(Image *image,
   if (attach != MagickFalse)
     {
       /*
-        Attach persistent pixel cache.
+        Attach existing persistent pixel cache.
       */
       if (image->debug != MagickFalse)
         (void) LogMagickEvent(CacheEvent,GetMagickModule(),
@@ -4154,21 +4161,21 @@ MagickExport MagickBooleanType PersistPixelCache(Image *image,
       cache_info->offset=(*offset);
       if (OpenPixelCache(image,ReadMode,exception) == MagickFalse)
         return(MagickFalse);
-      cache_info=(CacheInfo *) ReferencePixelCache(cache_info);
       *offset+=cache_info->length+pagesize-(cache_info->length % pagesize);
       return(MagickTrue);
     }
-  if ((cache_info->type != MemoryCache) && (cache_info->reference_count == 1))
+  if ((cache_info->mode != ReadMode) && (cache_info->type != MemoryCache) &&
+      (cache_info->reference_count == 1))
     {
       (void) LockSemaphoreInfo(cache_info->semaphore);
-      if ((cache_info->type != MemoryCache) &&
+      if ((cache_info->mode != ReadMode) && (cache_info->type != MemoryCache) &&
           (cache_info->reference_count == 1))
         {
           int
             status;
 
           /*
-            Usurp resident persistent pixel cache.
+            Usurp existing persistent pixel cache.
           */
           status=rename(cache_info->cache_filename,filename);
           if (status == 0)
@@ -4188,7 +4195,7 @@ MagickExport MagickBooleanType PersistPixelCache(Image *image,
       (void) UnlockSemaphoreInfo(cache_info->semaphore);
     }
   /*
-    Attach persistent pixel cache.
+    Clone persistent pixel cache.
   */
   clone_image=(*image);
   clone_info=(CacheInfo *) clone_image.cache;
index 6c00462ef2f335349025725315fae8e1b7f7f85d..71b49dd17ef4c83e9f5b2196aa4e3c7010082c82 100644 (file)
@@ -12,7 +12,7 @@ PACKAGE_NAME='ImageMagick'
 # PACKAGE_NAME (e.g. "1.0.0").
 PACKAGE_VERSION='6.5.5'
 PACKAGE_LIB_VERSION="0x655"
-PACKAGE_RELEASE="10"
+PACKAGE_RELEASE="9"
 PACKAGE_LIB_VERSION_NUMBER="6,5,5,${PACKAGE_RELEASE}"
 PACKAGE_RELEASE_DATE=`date +%F`
 PACKAGE_STRING="$PACKAGE_NAME $PACKAGE_VERSION"