From 3b5a2cfae45fc626333e614d82c981329b03bd48 Mon Sep 17 00:00:00 2001 From: cristy Date: Thu, 18 Oct 2012 14:50:08 +0000 Subject: [PATCH] --- MagickCore/blob.c | 4 ++-- MagickCore/cache.c | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/MagickCore/blob.c b/MagickCore/blob.c index 6d46e6ddb..d214f7e89 100644 --- a/MagickCore/blob.c +++ b/MagickCore/blob.c @@ -3762,8 +3762,8 @@ MagickPrivate MagickBooleanType SetBlobExtent(Image *image, offset; offset=TellBlob(image); - status=posix_fallocate(fileno(image->blob->file_info.file), - (off_t) offset,(off_t) (extent-offset)); + status=posix_fallocate(fileno(image->blob->file_info.file),offset, + extent-offset); if (status != 0) return(MagickFalse); } diff --git a/MagickCore/cache.c b/MagickCore/cache.c index 72c599fb6..9c5ecb0a4 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -3693,7 +3693,6 @@ static MagickBooleanType ExtendCache(Image *image,MagickSizeType length) *cache_info; MagickOffsetType - count, extent, offset; @@ -3718,8 +3717,26 @@ static MagickBooleanType ExtendCache(Image *image,MagickSizeType length) if ((MagickSizeType) extent >= length) return(MagickTrue); offset=(MagickOffsetType) length-1; - count=WritePixelCacheRegion(cache_info,offset,1,(const unsigned char *) ""); - return(count == (MagickOffsetType) 1 ? MagickTrue : MagickFalse); +#if !defined(MAGICKCORE_HAVE_POSIX_FALLOCATE) + { + MagickOffsetType + count; + + count=WritePixelCacheRegion(cache_info,offset,1,(const unsigned char *) ""); + if (count != (MagickOffsetType) 1) + return(MagickFalse); + } +#else + { + int + status; + + status=posix_fallocate(cache_info->file,extent+1,offset-extent); + if (status != 0) + return(MagickFalse); + } +#endif + return(MagickTrue); } static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, -- 2.40.0