2007-01-08 Li Yuan <li.yuan@sun.com>
authorliyuan <liyuan@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 8 Jan 2007 11:07:40 +0000 (11:07 +0000)
committerliyuan <liyuan@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 8 Jan 2007 11:07:40 +0000 (11:07 +0000)
        * registryd/registry-main.c:
        (main): set registry ior only when register server successfully.
        * atk-bridge/bridge.c:
        (spi_atk_bridge_register_application), (spi_atk_emit_eventv):
        Bug #372988, #381670. Fix memory leak.

git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@875 e2bd861d-eb25-0410-b326-f6ed22b6b98c

ChangeLog
atk-bridge/bridge.c
registryd/registry-main.c

index a8e7100..a2d91c5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-01-08  Li Yuan  <li.yuan@sun.com>
+
+       * registryd/registry-main.c:
+       (main): set registry ior only when register server successfully.
+       * atk-bridge/bridge.c:
+       (spi_atk_bridge_register_application), (spi_atk_emit_eventv):
+       Bug #372988, #381670. Fix memory leak.
+
 2007-01-02  Bill Haneman <billh@gnome.org>
 
        * libspi/text.c:
index 205987a..901f5b3 100644 (file)
@@ -305,6 +305,8 @@ spi_atk_bridge_register_application (Accessibility_Registry registry)
   Accessibility_Registry_registerApplication (spi_atk_bridge_get_registry (),
                                               BONOBO_OBJREF (this_app),
                                               &ev);
+  if (ev._major != CORBA_NO_EXCEPTION)
+    CORBA_exception_free (&ev);
 }
 
 /* 
@@ -738,21 +740,21 @@ spi_atk_emit_eventv (const GObject         *gobject,
 #endif
   CORBA_exception_init (&ev);
   registry = spi_atk_bridge_get_registry ();
-  if (registry_died) {
-      g_free (e.type);
-      return;
-  }  
-  Accessibility_Registry_notifyEvent (registry, 
-                                     &e, &ev);
+  if (!registry_died)
+  {
+    Accessibility_Registry_notifyEvent (registry, 
+                                        &e, &ev);
 #ifdef SPI_BRIDGE_DEBUG
-  if (ev._major != CORBA_NO_EXCEPTION)
-      g_message ("error emitting event %s, (%d) %s",
-                e.type,
-                ev._major,
-                CORBA_exception_id(&ev));
+    if (ev._major != CORBA_NO_EXCEPTION)
+        g_message ("error emitting event %s, (%d) %s",
+                   e.type,
+                   ev._major,
+                   CORBA_exception_id(&ev));
 #endif       
-  if (BONOBO_EX (&ev)) registry_died = TRUE;
-  
+    if (BONOBO_EX (&ev)) registry_died = TRUE;
+  }
+
   if (source)
       bonobo_object_unref (BONOBO_OBJECT (source));
   else
index c43c6dc..08a2db3 100644 (file)
@@ -68,8 +68,6 @@ main (int argc, char **argv)
          bonobo_object_corba_objref (bonobo_object (registry)),
          NULL);
 
-  registry_set_ior (registry);
-
   if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
     {
 #ifdef AT_SPI_DEBUG
@@ -81,6 +79,7 @@ main (int argc, char **argv)
 #ifdef AT_SPI_DEBUG
       fprintf (stderr, "SpiRegistry Message: SpiRegistry daemon is running.\n");
 #endif
+      registry_set_ior (registry);
       bonobo_main ();
     }