]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 31 Dec 2011 20:33:02 +0000 (20:33 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 31 Dec 2011 20:33:02 +0000 (20:33 +0000)
MagickCore/cache.c
MagickCore/segment.c

index f591a1fde21c2bfeac54c462b816dcca44e9e5b5..8dda3b95997fa9d904bdba535d96e32e1eeec722 100644 (file)
@@ -919,9 +919,6 @@ static MagickBooleanType UnoptimizedPixelCacheClone(CacheInfo *clone_info,
     clone_offset,
     count;
 
-  Quantum
-    sans;
-
   register ssize_t
     x;
 
@@ -975,7 +972,6 @@ static MagickBooleanType UnoptimizedPixelCacheClone(CacheInfo *clone_info,
         }
       cache_offset=cache_info->offset;
     }
-if (0)
   if ((cache_info->type != MemoryCache) && (clone_info->type != MemoryCache) &&
       (strcmp(cache_info->cache_filename,clone_info->cache_filename) == 0))
     {
@@ -1008,7 +1004,6 @@ if (0)
   /*
     Clone pixel channels.
   */
-  sans=0;
   status=MagickTrue;
   for (y=0; y < (ssize_t) cache_info->rows; y++)
   {
@@ -1054,35 +1049,21 @@ if (0)
           traits=cache_info->channel_map[channel].traits;
           if (traits == UndefinedPixelTrait)
             {
-              if (clone_info->type != DiskCache)
-                (void) memcpy((unsigned char *) clone_info->pixels+clone_offset,
-                  (unsigned char *) &sans,sizeof(Quantum));
-              else
-                {
-                  count=WritePixelCacheRegion(clone_info,clone_offset,
-                    sizeof(Quantum),(unsigned char *) &sans);
-                  if ((MagickSizeType) count != sizeof(Quantum))
-                    {
-                      status=MagickFalse;
-                      break;
-                    }
-                }
+              clone_offset+=sizeof(Quantum);
+              continue;
             }
+          offset=cache_info->channel_map[channel].offset;
+          if (clone_info->type != DiskCache)
+            (void) memcpy((unsigned char *) clone_info->pixels+clone_offset,
+              blob+offset*sizeof(Quantum),sizeof(Quantum));
           else
             {
-              offset=cache_info->channel_map[channel].offset;
-              if (clone_info->type != DiskCache)
-                (void) memcpy((unsigned char *) clone_info->pixels+clone_offset,
-                  blob+offset*sizeof(Quantum),sizeof(Quantum));
-              else
+              count=WritePixelCacheRegion(clone_info,clone_offset,
+                sizeof(Quantum),blob+offset*sizeof(Quantum));
+              if ((MagickSizeType) count != sizeof(Quantum))
                 {
-                  count=WritePixelCacheRegion(clone_info,clone_offset,
-                    sizeof(Quantum),blob+offset*sizeof(Quantum));
-                  if ((MagickSizeType) count != sizeof(Quantum))
-                    {
-                      status=MagickFalse;
-                      break;
-                    }
+                  status=MagickFalse;
+                  break;
                 }
             }
           clone_offset+=sizeof(Quantum);
@@ -4156,7 +4137,7 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
               if (cache_info->metacontent_extent != 0)
                 cache_info->metacontent=(void *) (cache_info->pixels+
                   number_pixels*cache_info->number_channels);
-              if (source_info.type != UndefinedCache)
+              if (source_info.storage_class != UndefinedClass)
                 {
                   status=ClonePixelCachePixels(cache_info,&source_info,
                     exception);
@@ -4177,11 +4158,6 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
         "CacheResourcesExhausted","`%s'",image->filename);
       return(MagickFalse);
     }
-  if (source_info.type != UndefinedCache)
-    {
-      (void) ClosePixelCacheOnDisk(cache_info);
-      *cache_info->cache_filename='\0';
-    }
   if (OpenPixelCacheOnDisk(cache_info,mode) == MagickFalse)
     {
       RelinquishMagickResource(DiskResource,cache_info->length);
@@ -4229,7 +4205,7 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
               if (cache_info->metacontent_extent != 0)
                 cache_info->metacontent=(void *) (cache_info->pixels+
                   number_pixels*cache_info->number_channels);
-              if (source_info.type != UndefinedCache)
+              if (source_info.storage_class != UndefinedClass)
                 {
                   status=ClonePixelCachePixels(cache_info,&source_info,
                     exception);
@@ -4254,7 +4230,7 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
       RelinquishMagickResource(MapResource,cache_info->length);
     }
   status=MagickTrue;
-  if (source_info.type != UndefinedCache)
+  if ((source_info.type != UndefinedCache) && (mode != ReadMode))
     {
       status=ClonePixelCachePixels(cache_info,&source_info,exception);
       RelinquishPixelCachePixels(&source_info);
index a592854550ce82b721c769cada7ab0982d6f215e..1af17342162da3850717ee8fea7eab93f4ddc6c1 100644 (file)
@@ -1833,7 +1833,6 @@ MagickExport MagickBooleanType SegmentImage(Image *image,
   /*
     Initialize histogram.
   */
-  SyncImagePixelCache(image,exception);
   InitializeHistogram(image,histogram,exception);
   (void) OptimalTau(histogram[Red],Tau,0.2,DeltaTau,
     smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Red]);