From: cristy Date: Thu, 10 Sep 2009 15:00:08 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~10739 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4320e0e2e2e6b22578f3644d839aa90079493057;p=imagemagick --- diff --git a/magick/cache.c b/magick/cache.c index 2794b159b..7b2882813 100644 --- a/magick/cache.c +++ b/magick/cache.c @@ -2082,6 +2082,7 @@ MagickExport Cache GetImagePixelCache(Image *image, time_limit; MagickBooleanType + destroy, status; if (image->debug != MagickFalse) @@ -2096,6 +2097,7 @@ MagickExport Cache GetImagePixelCache(Image *image, ThrowFatalException(ResourceLimitFatalError,"TimeLimitExceeded"); assert(image->cache != (Cache) NULL); cache_info=(CacheInfo *) image->cache; + destroy=MagickFalse; (void) LockSemaphoreInfo(cache_info->semaphore); if (cache_info->reference_count > 1) { @@ -2121,13 +2123,15 @@ MagickExport Cache GetImagePixelCache(Image *image, status=ClonePixelCachePixels(clone_info,cache_info,exception); if (status != MagickFalse) { - cache_info->reference_count--; + destroy=MagickTrue; image->cache=clone_image.cache; } } } } (void) UnlockSemaphoreInfo(cache_info->semaphore); + if (destroy != MagickFalse) + DestroyPixelCache(cache_info); if (status != MagickFalse) { /*