[gimp] libgimp: gimp_drawable_get_buffer(): return NULL for an invalid drawable



commit c91702917e629336c59d7f2bb9beb016d3459ae4
Author: Michael Natterer <mitch gimp org>
Date:   Sat Sep 22 20:33:03 2012 +0200

    libgimp: gimp_drawable_get_buffer(): return NULL for an invalid drawable
    
    instead of repeating the crappy behavior of gimp_drawable_get() which
    would return something even for bogus drawable IDs.

 libgimp/gimpdrawable.c |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)
---
diff --git a/libgimp/gimpdrawable.c b/libgimp/gimpdrawable.c
index 29d5be6..7f37fb2 100644
--- a/libgimp/gimpdrawable.c
+++ b/libgimp/gimpdrawable.c
@@ -667,22 +667,25 @@ gimp_drawable_attach_new_parasite (gint32          drawable_ID,
 GeglBuffer *
 gimp_drawable_get_buffer (gint32 drawable_ID)
 {
-  GimpDrawable *drawable;
-
   gimp_plugin_enable_precision ();
 
-  drawable = gimp_drawable_get (drawable_ID);
-
-  if (drawable)
+  if (gimp_item_is_valid (drawable_ID))
     {
-      GeglTileBackend *backend;
-      GeglBuffer      *buffer;
+      GimpDrawable *drawable;
 
-      backend = _gimp_tile_backend_plugin_new (drawable, FALSE);
-      buffer = gegl_buffer_new_for_backend (NULL, backend);
-      g_object_unref (backend);
+      drawable = gimp_drawable_get (drawable_ID);
 
-      return buffer;
+      if (drawable)
+        {
+          GeglTileBackend *backend;
+          GeglBuffer      *buffer;
+
+          backend = _gimp_tile_backend_plugin_new (drawable, FALSE);
+          buffer = gegl_buffer_new_for_backend (NULL, backend);
+          g_object_unref (backend);
+
+          return buffer;
+        }
     }
 
   return NULL;



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