[gimp] Use G_TYPE_CHECK_INSTANCE_TYPE() instead of GIMP_IS_ITEM()



commit b83e82514b526cb57c72d57355d5056d1f99e408
Author: Michael Natterer <mitch gimp org>
Date:   Sun Feb 7 23:35:22 2010 +0100

    Use G_TYPE_CHECK_INSTANCE_TYPE() instead of GIMP_IS_ITEM()
    
    so we check for the real type of the items that are in the tree. Also
    added some more precondition checks.

 app/core/gimpitemtree.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/app/core/gimpitemtree.c b/app/core/gimpitemtree.c
index 07e8460..97710d2 100644
--- a/app/core/gimpitemtree.c
+++ b/app/core/gimpitemtree.c
@@ -400,9 +400,16 @@ gimp_item_tree_add_item (GimpItemTree *tree,
 
   private = GIMP_ITEM_TREE_GET_PRIVATE (tree);
 
-  g_return_if_fail (GIMP_IS_ITEM (item));
+  g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (item, private->item_type));
   g_return_if_fail (! gimp_item_is_attached (item));
   g_return_if_fail (gimp_item_get_image (item) == private->image);
+  g_return_if_fail (parent == NULL ||
+                    G_TYPE_CHECK_INSTANCE_TYPE (parent, private->item_type));
+  g_return_if_fail (parent == NULL || gimp_item_is_attached (parent));
+  g_return_if_fail (parent == NULL ||
+                    gimp_item_get_image (parent) == private->image);
+  g_return_if_fail (parent == NULL ||
+                    gimp_viewable_get_children (GIMP_VIEWABLE (parent)));
 
   gimp_item_tree_uniquefy_name (tree, item, NULL);
 
@@ -432,7 +439,8 @@ gimp_item_tree_remove_item (GimpItemTree *tree,
 
   private = GIMP_ITEM_TREE_GET_PRIVATE (tree);
 
-  g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
+  g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (item, private->item_type),
+                        NULL);
   g_return_val_if_fail (gimp_item_is_attached (item), NULL);
   g_return_val_if_fail (gimp_item_get_image (item) == private->image, NULL);
 
@@ -560,7 +568,7 @@ gimp_item_tree_rename_item (GimpItemTree *tree,
 
   private = GIMP_ITEM_TREE_GET_PRIVATE (tree);
 
-  g_return_if_fail (GIMP_IS_ITEM (item));
+  g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (item, private->item_type));
   g_return_if_fail (gimp_item_is_attached (item));
   g_return_if_fail (gimp_item_get_image (item) == private->image);
   g_return_if_fail (new_name != NULL);



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