[gtk+] a11y: Fix up listener registration minimally



commit f1476f31fe2f03c8e73118d41d0c6c3eafd6218c
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Sep 5 11:54:41 2011 -0400

    a11y: Fix up listener registration minimally
    
    For god-knows-what reason, at-spi is trying various formats
    of strings when registering listeners, triggering g_warnings()
    from gailutil code. Stop doing that.
    
    Also, don't leak temporary string arrays that are a side-effect
    of passing parameters around as formatted strings.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=658168

 gtk/a11y/gailutil.c |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)
---
diff --git a/gtk/a11y/gailutil.c b/gtk/a11y/gailutil.c
index e9ca92b..8cba1c2 100644
--- a/gtk/a11y/gailutil.c
+++ b/gtk/a11y/gailutil.c
@@ -81,12 +81,12 @@ add_listener (GSignalEmissionHook  listener,
         }
       else
         {
-          g_warning("Invalid signal type %s\n", signal_name);
+          g_warning ("Invalid signal type %s\n", signal_name);
         }
     }
   else
     {
-      g_warning("Invalid object type %s\n", object_type);
+      g_warning ("Invalid object type %s\n", object_type);
     }
   return rc;
 }
@@ -271,7 +271,10 @@ gail_util_add_global_event_listener (GSignalEmissionHook  listener,
 
   split_string = g_strsplit (event_type, ":", 3);
 
-  rc = add_listener (listener, split_string[1], split_string[2], event_type);
+  if (g_strv_length (split_string) == 3)
+    rc = add_listener (listener, split_string[1], split_string[2], event_type);
+
+  g_strfreev (split_string);
 
   return rc;
 }
@@ -301,19 +304,19 @@ gail_util_remove_global_event_listener (guint remove_listener)
           }
         else
           {
-            g_warning("Invalid listener hook_id %ld or signal_id %d\n",
-              listener_info->hook_id, listener_info->signal_id);
+            g_warning ("Invalid listener hook_id %ld or signal_id %d\n",
+                       listener_info->hook_id, listener_info->signal_id);
           }
       }
     else
       {
-        g_warning("No listener with the specified listener id %d",
-          remove_listener);
+        g_warning ("No listener with the specified listener id %d",
+                   remove_listener);
       }
   }
   else
   {
-    g_warning("Invalid listener_id %d", remove_listener);
+    g_warning ("Invalid listener_id %d", remove_listener);
   }
 }
 



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