[gegl/newgraph-merge: 1/8] operation_context: Don't reuse the empty buffer



commit d9c96491fcd7422e33e7b02514d411ac48a413e8
Author: Daniel Sabo <DanielSabo gmail com>
Date:   Mon May 20 22:38:27 2013 -0700

    operation_context: Don't reuse the empty buffer
    
    Really this path should never be reached, but it's not safe
    to reuse the buffer when we don't know what the op might
    do to it.

 gegl/operation/gegl-operation-context.c |   16 +---------------
 1 files changed, 1 insertions(+), 15 deletions(-)
---
diff --git a/gegl/operation/gegl-operation-context.c b/gegl/operation/gegl-operation-context.c
index 7a5ed4e..77bdb21 100644
--- a/gegl/operation/gegl-operation-context.c
+++ b/gegl/operation/gegl-operation-context.c
@@ -324,20 +324,6 @@ gegl_operation_context_get_source (GeglOperationContext *context,
   return input;
 }
 
-static GeglBuffer *emptybuf (void)
-{
-  static GeglBuffer *empty = NULL; /* we leak this single empty buffer,
-                                      avoiding having to create it weighs
-                                      up the penalty.
-                                    */
-  if (!empty)
-    {
-      GeglRectangle rect={0,0,0,0};
-      empty = gegl_buffer_new (&rect, babl_format ("RGBA float"));
-    }
-  return empty;
-}
-
 GeglBuffer *
 gegl_operation_context_get_target (GeglOperationContext *context,
                                    const gchar          *padname)
@@ -370,7 +356,7 @@ gegl_operation_context_get_target (GeglOperationContext *context,
   if (result->width == 0 ||
       result->height == 0)
     {
-      output = g_object_ref (emptybuf());
+      output = gegl_buffer_new_ram (GEGL_RECTANGLE (0, 0, 0, 0), format);
     }
   else if (node->dont_cache == FALSE &&
       ! GEGL_OPERATION_CLASS (G_OBJECT_GET_CLASS (operation))->no_cache)


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