[gegl] buffer: really not do memcpy for uncloning empty tiles
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] buffer: really not do memcpy for uncloning empty tiles
- Date: Tue, 9 Apr 2013 00:00:59 +0000 (UTC)
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]