Fix for SEGV triggered by test-gail-gnome, due to calling
authorBill Haneman <billh@src.gnome.org>
Thu, 14 Mar 2002 00:31:15 +0000 (00:31 +0000)
committerBill Haneman <billh@src.gnome.org>
Thu, 14 Mar 2002 00:31:15 +0000 (00:31 +0000)
g_type_class_peek (ATK_UTIL_CLASS) instead of
g_type_class_ref (ATK_UTIL_CLASS).

ChangeLog
atk/atkcomponent.h
atk/atkutil.c

index 66a1787..3b4c71b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-03-13  Bill Haneman <bill.haneman@sun.com>
+
+       * atk/atkutil.c (atk_object_get_root):
+       Changed g_type_class_peek to g_type_class_ref,
+       this seemed to be triggering a SEGV in some cases.
+
+
 2002-03-12  Padraig O'Briain  <padraig.obriain@sun.com>
 
        * atk/atkgobjectaccessible.c (atk_gobject_accessible_dispose):
index b551cd4..ccb73d1 100755 (executable)
@@ -54,6 +54,7 @@ struct _AtkComponentIface
 
   guint          (* add_focus_handler)  (AtkComponent          *component,
                                          AtkFocusHandler        handler);
+
   gboolean       (* contains)           (AtkComponent          *component,
                                          gint                   x,
                                          gint                   y,
index 8212391..65a762a 100755 (executable)
@@ -286,15 +286,19 @@ atk_remove_key_event_listener (guint listener_id)
 AtkObject*
 atk_get_root (void)
 {
-  AtkUtilClass *klass = g_type_class_peek (ATK_TYPE_UTIL);
+  AtkUtilClass *klass = g_type_class_ref (ATK_TYPE_UTIL);
+  AtkObject    *retval;
   if (klass->get_root)
     {
-      return klass->get_root ();
+      retval = klass->get_root ();
     }
   else
     {
-      return NULL;
+      retval = NULL;
     }
+  g_type_class_unref (klass);
+
+  return retval;
 }
 
 /**