{
(void) UnmapBlob(cache_info->pixels,(size_t) cache_info->length);
cache_info->pixels=(Quantum *) NULL;
- if (cache_info->mode != ReadMode)
+ if ((cache_info->mode != ReadMode) && (cache_info->mode != PersistMode))
(void) RelinquishUniqueFileResource(cache_info->cache_filename);
*cache_info->cache_filename='\0';
RelinquishMagickResource(MapResource,cache_info->length);
{
if (cache_info->file != -1)
(void) ClosePixelCacheOnDisk(cache_info);
- if (cache_info->mode != ReadMode)
+ if ((cache_info->mode != ReadMode) && (cache_info->mode != PersistMode))
(void) RelinquishUniqueFileResource(cache_info->cache_filename);
*cache_info->cache_filename='\0';
RelinquishMagickResource(DiskResource,cache_info->length);
return(MagickTrue);
}
status=AcquireMagickResource(AreaResource,cache_info->length);
- if ((status != MagickFalse) && (cache_info->persist != MagickFalse))
+ if (cache_info->mode == PersistMode)
status=MagickFalse;
length=number_pixels*(cache_info->number_channels*sizeof(Quantum)+
cache_info->metacontent_extent);
return(MagickFalse);
}
if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode) &&
- (cache_info->persist != MagickFalse))
+ (cache_info->mode != PersistMode))
{
(void) ClosePixelCacheOnDisk(cache_info);
*cache_info->cache_filename='\0';
return(MagickFalse);
clone_info=(CacheInfo *) clone_image->cache;
(void) CopyMagickString(clone_info->cache_filename,filename,MagickPathExtent);
- clone_info->persist=MagickTrue;
+ clone_info->mode=PersistMode;
clone_info->offset=(*offset);
status=ClonePixelCacheRepository(clone_info,image->cache,exception);
*offset+=cache_info->length+page_size-(cache_info->length % page_size);
if (temporary_resources != (SplayTreeInfo *) NULL)
status=DeleteNodeFromSplayTree(temporary_resources,(const void *) path);
UnlockSemaphoreInfo(resource_semaphore);
- if (status != MagickFalse)
- {
- (void) CopyMagickString(cache_path,path,MagickPathExtent);
- AppendImageFormat("cache",cache_path);
- (void) ShredFile(cache_path);
- }
+ (void) CopyMagickString(cache_path,path,MagickPathExtent);
+ AppendImageFormat("cache",cache_path);
+ (void) ShredFile(cache_path);
if (status == MagickFalse)
status=ShredFile(path);
return(status);