From c13ea27d981fc95d68d09b5820ad3b51b04a2678 Mon Sep 17 00:00:00 2001 From: liyuan Date: Mon, 8 Jan 2007 11:07:40 +0000 Subject: [PATCH 1/1] 2007-01-08 Li Yuan * 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 | 8 ++++++++ atk-bridge/bridge.c | 28 +++++++++++++++------------- registryd/registry-main.c | 3 +-- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index a8e7100..a2d91c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-01-08 Li Yuan + + * 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 * libspi/text.c: diff --git a/atk-bridge/bridge.c b/atk-bridge/bridge.c index 205987a..901f5b3 100644 --- a/atk-bridge/bridge.c +++ b/atk-bridge/bridge.c @@ -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 diff --git a/registryd/registry-main.c b/registryd/registry-main.c index c43c6dc..08a2db3 100644 --- a/registryd/registry-main.c +++ b/registryd/registry-main.c @@ -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 (); } -- 2.7.4