]> Pileus Git - ~andy/gtk/commitdiff
container: Warn if an invalid widget path is created
authorBenjamin Otte <otte@redhat.com>
Tue, 27 Sep 2011 02:29:11 +0000 (04:29 +0200)
committerBenjamin Otte <otte@redhat.com>
Tue, 27 Sep 2011 03:37:14 +0000 (05:37 +0200)
This makes it quite a bit easier to debug things.

gtk/gtkcontainer.c

index ac9bcf97265ae464c0b3922556319c3241bad3bf..6dd7a3c8abaf389514b97847df58a99a011aa976 100644 (file)
@@ -3377,9 +3377,21 @@ GtkWidgetPath *
 gtk_container_get_path_for_child (GtkContainer *container,
                                   GtkWidget    *child)
 {
+  GtkWidgetPath *path;
+
   g_return_val_if_fail (GTK_IS_CONTAINER (container), NULL);
   g_return_val_if_fail (GTK_IS_WIDGET (child), NULL);
   g_return_val_if_fail (container == (GtkContainer *) gtk_widget_get_parent (child), NULL);
 
-  return GTK_CONTAINER_GET_CLASS (container)->get_path_for_child (container, child);
+  path = GTK_CONTAINER_GET_CLASS (container)->get_path_for_child (container, child);
+  if (gtk_widget_path_get_object_type (path) != G_OBJECT_TYPE (child))
+    {
+      g_critical ("%s %p returned a widget path for type %s, but child is %s",
+                  G_OBJECT_TYPE_NAME (container),
+                  container,
+                  g_type_name (gtk_widget_path_get_object_type (path)),
+                  G_OBJECT_TYPE_NAME (child));
+    }
+
+  return path;
 }