From 5f46061830258d929901acfe257709cbc37986de Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sun, 14 Feb 2010 13:55:45 +0100 Subject: [PATCH] app: add gimp_item_peek_node() and use it so we can avoid peeking into the GimpItem struct if we want to get to the item's node without implicitly creating it if it doesn't already exist. --- app/core/gimpdrawable.c | 9 ++++++--- app/core/gimpitem.c | 8 ++++++++ app/core/gimpitem.h | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c index 090a9a296e..5818c5bccf 100644 --- a/app/core/gimpdrawable.c +++ b/app/core/gimpdrawable.c @@ -355,17 +355,20 @@ static void gimp_drawable_visibility_changed (GimpItem *item) { GimpDrawable *drawable = GIMP_DRAWABLE (item); + GeglNode *item_node; /* don't use gimp_item_get_node() because that would create * the node. */ - if (item->node) + item_node = gimp_item_peek_node (item); + + if (item_node) { GeglNode *input; GeglNode *output; - input = gegl_node_get_input_proxy (item->node, "input"); - output = gegl_node_get_output_proxy (item->node, "output"); + input = gegl_node_get_input_proxy (item_node, "input"); + output = gegl_node_get_output_proxy (item_node, "output"); if (gimp_item_get_visible (item) && ! (GIMP_IS_LAYER (item) && diff --git a/app/core/gimpitem.c b/app/core/gimpitem.c index 0b7501649c..de679cb2d4 100644 --- a/app/core/gimpitem.c +++ b/app/core/gimpitem.c @@ -1421,6 +1421,14 @@ gimp_item_get_node (GimpItem *item) return GIMP_ITEM_GET_CLASS (item)->get_node (item); } +GeglNode * +gimp_item_peek_node (GimpItem *item) +{ + g_return_val_if_fail (GIMP_IS_ITEM (item), NULL); + + return item->node; +} + GeglNode * gimp_item_get_offset_node (GimpItem *item) { diff --git a/app/core/gimpitem.h b/app/core/gimpitem.h index 966aa6568d..6b01b8704c 100644 --- a/app/core/gimpitem.h +++ b/app/core/gimpitem.h @@ -247,6 +247,7 @@ gboolean gimp_item_stroke (GimpItem *item, GError **error); GeglNode * gimp_item_get_node (GimpItem *item); +GeglNode * gimp_item_peek_node (GimpItem *item); GeglNode * gimp_item_get_offset_node (GimpItem *item);