...
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index f50c814..49edbde 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -3401,6 +3401,7 @@
if (((cache_info->type == UndefinedCache) && (status != MagickFalse)) ||
(cache_info->type == MemoryCache))
{
+ status=MagickTrue;
cache_info->mapped=MagickFalse;
cache_info->pixels=(Quantum *) MagickAssumeAligned(
AcquireAlignedMemory(1,(size_t) cache_info->length));
@@ -3411,7 +3412,6 @@
/*
Create memory pixel cache.
*/
- status=MagickTrue;
cache_info->type=MemoryCache;
cache_info->metacontent=(void *) NULL;
if (cache_info->metacontent_extent != 0)
@@ -3470,6 +3470,7 @@
/*
Create a distributed pixel cache.
*/
+ status=MagickTrue;
cache_info->type=DistributedCache;
cache_info->server_info=server_info;
(void) FormatLocaleString(cache_info->cache_filename,
@@ -3500,11 +3501,10 @@
(void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
message);
}
- return(MagickTrue);
+ return(status);
}
}
RelinquishMagickResource(DiskResource,cache_info->length);
- cache_info->type=UndefinedCache;
(void) ThrowMagickException(exception,GetMagickModule(),CacheError,
"CacheResourcesExhausted","`%s'",image->filename);
return(MagickFalse);
@@ -3517,7 +3517,6 @@
if (OpenPixelCacheOnDisk(cache_info,mode) == MagickFalse)
{
RelinquishMagickResource(DiskResource,cache_info->length);
- cache_info->type=UndefinedCache;
ThrowFileException(exception,CacheError,"UnableToOpenPixelCache",
image->filename);
return(MagickFalse);
@@ -3526,7 +3525,6 @@
cache_info->length);
if (status == MagickFalse)
{
- cache_info->type=UndefinedCache;
ThrowFileException(exception,CacheError,"UnableToExtendCache",
image->filename);
return(MagickFalse);
@@ -3588,8 +3586,6 @@
(void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
message);
}
- if (status == MagickFalse)
- cache_info->type=UndefinedCache;
return(status);
}
}
@@ -3614,8 +3610,6 @@
cache_info->number_channels,format);
(void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",message);
}
- if (status == MagickFalse)
- cache_info->type=UndefinedCache;
return(status);
}