Fixed bug in atkutil when no impl library (e.g. libgail) is loaded.
authorBill Haneman <billh@src.gnome.org>
Thu, 29 Nov 2001 15:51:40 +0000 (15:51 +0000)
committerBill Haneman <billh@src.gnome.org>
Thu, 29 Nov 2001 15:51:40 +0000 (15:51 +0000)
Fixed small doc bug in atkobject.

ChangeLog
atk/atkobject.c
atk/atkutil.c

index 2f2e16f..889057e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2001-11-28  Bill Haneman  <bill.haneman@sun.com>
+
+       * atk/atkutil.c:
+       Changed calls to g_type_class_peek() to g_type_class_ref() where
+       it makes more sense, and in other places check for a non-null
+       klass return before trying to call class methods.  This prevents
+       SEGV if no Atk-implementation library has been loaded.
+
+       * atk/atkobject.c:
+       Fixed gtk-doc warning.
+
 2001-11-28  Padraig O'Briain  <padraig.obriain@sun.com>
 
        * atk/atkobject.[c|h]:
index f3b3674..c7d7521 100755 (executable)
@@ -1142,7 +1142,7 @@ atk_object_notify (GObject     *obj,
 
 /**
  * atk_role_get_name:
- * @type: The #AtkRole whose name is required
+ * @role: The #AtkRole whose name is required
  *
  * Gets the description string describing the #Roleype @role.
  *
index dd3e066..8212391 100755 (executable)
@@ -228,7 +228,7 @@ atk_remove_global_event_listener (guint listener_id)
 {
   AtkUtilClass *klass = g_type_class_peek (ATK_TYPE_UTIL);
 
-  if (klass->remove_global_event_listener)
+  if (klass && klass->remove_global_event_listener)
     klass->remove_global_event_listener (listener_id);
 }
 
@@ -249,7 +249,7 @@ atk_add_key_event_listener (AtkKeySnoopFunc listener, gpointer data)
 {
   guint retval;
   AtkUtilClass *klass = g_type_class_peek (ATK_TYPE_UTIL);
-  if (klass->add_key_event_listener)
+  if (klass && klass->add_key_event_listener)
     {
       retval = klass->add_key_event_listener (listener, data);
     }
@@ -307,15 +307,19 @@ atk_get_root (void)
 G_CONST_RETURN gchar*
 atk_get_toolkit_name (void)
 {
-  AtkUtilClass *klass = g_type_class_peek (ATK_TYPE_UTIL);
+  const gchar *retval;
+  AtkUtilClass *klass = g_type_class_ref (ATK_TYPE_UTIL);
   if (klass->get_toolkit_name)
     {
-      return klass->get_toolkit_name ();
+      retval = klass->get_toolkit_name ();
     }
   else
     {
-      return NULL;
+      retval = NULL;
     }
+  g_type_class_unref (klass);
+
+  return retval;
 }
 
 /**
@@ -328,13 +332,17 @@ atk_get_toolkit_name (void)
 G_CONST_RETURN gchar*
 atk_get_toolkit_version (void)
 {
-  AtkUtilClass *klass = g_type_class_peek (ATK_TYPE_UTIL);
+  const gchar *retval;
+  AtkUtilClass *klass = g_type_class_ref (ATK_TYPE_UTIL);
   if (klass->get_toolkit_version)
     {
-      return klass->get_toolkit_version ();
+      retval = klass->get_toolkit_version ();
     }
   else
     {
-      return NULL;
+      retval = NULL;
     }
+  g_type_class_unref (klass);
+
+  return retval;
 }