From: cristy Date: Thu, 10 Sep 2009 23:10:14 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~10737 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=01b7eb03ad0df7b93ec700e5428de5b2d92ad98c;p=imagemagick --- diff --git a/magick/cache.c b/magick/cache.c index 7b2882813..0a0a0b364 100644 --- a/magick/cache.c +++ b/magick/cache.c @@ -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; diff --git a/version.sh b/version.sh index 6c00462ef..71b49dd17 100644 --- a/version.sh +++ b/version.sh @@ -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"