[gegl] buffer: really not do memcpy for uncloning empty tiles



commit 568b358f748d92dd10f1c96ff086c3452b96a119
Author: Øyvind Kolås <pippin gimp org>
Date:   Tue Apr 9 02:00:40 2013 +0200

    buffer: really not do memcpy for uncloning empty tiles

 gegl/buffer/gegl-buffer-iterator.h |   17 -----------------
 gegl/buffer/gegl-tile.c            |    4 ++--
 gegl/gegl-utils.h                  |    7 +++++++
 3 files changed, 9 insertions(+), 19 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer-iterator.h b/gegl/buffer/gegl-buffer-iterator.h
index bbc8428..7844d29 100644
--- a/gegl/buffer/gegl-buffer-iterator.h
+++ b/gegl/buffer/gegl-buffer-iterator.h
@@ -124,22 +124,5 @@ void                 gegl_buffer_iterator_stop  (GeglBufferIterator *iterator);
 gboolean             gegl_buffer_iterator_next (GeglBufferIterator *iterator);
 
 
-#ifdef EXAMPLE
-
-  GeglBufferIterator *gi;
-  gi = gegl_buffer_iterator_new (buffer, roi,
-                                 babl_format("Y' float"), GEGL_BUFFER_WRITE);
-  while (gegl_buffer_iterator_next (gi))
-    {
-      gfloat *buf = gi->data[0];
-      gint    i;
-      for (i=0; i<gi->length; i++)
-        {
-          buf[i]=0.5;
-        }
-    }
-
-
-#endif
 
 #endif
diff --git a/gegl/buffer/gegl-tile.c b/gegl/buffer/gegl-tile.c
index b9c43e4..3c3039a 100644
--- a/gegl/buffer/gegl-tile.c
+++ b/gegl/buffer/gegl-tile.c
@@ -169,12 +169,12 @@ gegl_tile_unclone (GeglTile *tile)
 
       if (tile->is_zero_tile)
         {
-          tile->data = gegl_memdup (tile->data, tile->size);
+          tile->data = gegl_calloc (tile->size, 1);
           tile->is_zero_tile = 0;
         }
       else
         {
-          tile->data                     = gegl_memdup (tile->data, tile->size);
+          tile->data = gegl_memdup (tile->data, tile->size);
         }
       tile->destroy_notify           = (void*)&free_data_directly;
       tile->destroy_notify_data      = NULL;
diff --git a/gegl/gegl-utils.h b/gegl/gegl-utils.h
index 039c969..1fc1a4e 100644
--- a/gegl/gegl-utils.h
+++ b/gegl/gegl-utils.h
@@ -196,6 +196,13 @@ gpointer gegl_malloc                  (gsize    n_bytes);
  */
 void     gegl_free                    (gpointer mem);
 
+/**
+ * gegl_calloc:
+ * @size: size of items to allocate
+ * @n_memb: number of members
+ *
+ * allocated 0'd memory.
+ */
 gpointer gegl_calloc (gsize size, int n_memb);
 
 #define GEGL_FLOAT_EPSILON            (1e-5)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]