From 472a6e0fa01103936680f652a4551cbf455efdef Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Fri, 10 Jan 2003 21:39:33 +0000 Subject: Don't duplicate the shell object here before passing to * evolution-shell-component.c (impl_setOwner): Don't duplicate the shell object here before passing to evolution_shell_client_new(). * evolution-shell-client.c (evolution_shell_client_construct): Dupliate the @corba_shell before storing into the EvolutionShellClientPrivate struct. * e-shell-config-default-folders.c (e_shell_config_default_folders_create_widget): Do not duplicate the shell's CORBA objref. * e-shell-config-autocompletion.c (e_shell_config_autocompletion_create_widget): Do not duplicate the shell's CORBA objref. svn path=/trunk/; revision=19415 --- shell/ChangeLog | 17 +++++++++++++++++ shell/e-shell-config-autocompletion.c | 4 +--- shell/e-shell-config-default-folders.c | 6 +----- shell/evolution-shell-client.c | 8 ++++---- shell/evolution-shell-component.c | 5 +---- 5 files changed, 24 insertions(+), 16 deletions(-) (limited to 'shell') diff --git a/shell/ChangeLog b/shell/ChangeLog index 18496e71df..94fdd49185 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,20 @@ +2003-01-10 Ettore Perazzoli + + * evolution-shell-component.c (impl_setOwner): Don't duplicate the + shell object here before passing to evolution_shell_client_new(). + + * evolution-shell-client.c (evolution_shell_client_construct): + Dupliate the @corba_shell before storing into the + EvolutionShellClientPrivate struct. + + * e-shell-config-default-folders.c + (e_shell_config_default_folders_create_widget): Do not duplicate + the shell's CORBA objref. + + * e-shell-config-autocompletion.c + (e_shell_config_autocompletion_create_widget): Do not duplicate + the shell's CORBA objref. + 2003-01-10 Dan Winship * e-storage-set-view.c (popup_folder_menu): Make this work again. diff --git a/shell/e-shell-config-autocompletion.c b/shell/e-shell-config-autocompletion.c index 3ab2650ab2..df232e8067 100644 --- a/shell/e-shell-config-autocompletion.c +++ b/shell/e-shell-config-autocompletion.c @@ -87,7 +87,6 @@ config_control_apply_callback (EvolutionConfigControl *config_control, GtkWidget * e_shell_config_autocompletion_create_widget (EShell *shell, EvolutionConfigControl *config_control) { - GNOME_Evolution_Shell shell_dup; EvolutionAutocompletionConfig *ac; CORBA_Environment ev; GConfClient *client; @@ -98,8 +97,7 @@ e_shell_config_autocompletion_create_widget (EShell *shell, EvolutionConfigContr CORBA_exception_init (&ev); - shell_dup = CORBA_Object_duplicate (BONOBO_OBJREF (shell), &ev); - ac->shell_client = evolution_shell_client_new (shell_dup); + ac->shell_client = evolution_shell_client_new (BONOBO_OBJREF (shell)); client = gconf_client_get_default (); xml = gconf_client_get_string (client, "/apps/evolution/addressbook/completion/uris", NULL); diff --git a/shell/e-shell-config-default-folders.c b/shell/e-shell-config-default-folders.c index 9ee4cd7be8..6dc06e4915 100644 --- a/shell/e-shell-config-default-folders.c +++ b/shell/e-shell-config-default-folders.c @@ -162,17 +162,13 @@ setup_folder_selector (EvolutionDefaultFolderConfig *dfc, GtkWidget* e_shell_config_default_folders_create_widget (EShell *shell, EvolutionConfigControl *config_control) { - GNOME_Evolution_Shell shell_dup; CORBA_Environment ev; EvolutionDefaultFolderConfig *dfc; GtkWidget *widget; dfc = g_new0 (EvolutionDefaultFolderConfig, 1); - CORBA_exception_init (&ev); - shell_dup = CORBA_Object_duplicate (BONOBO_OBJREF (shell), &ev); - CORBA_exception_free (&ev); - dfc->shell_client = evolution_shell_client_new (shell_dup); + dfc->shell_client = evolution_shell_client_new (BONOBO_OBJREF (shell)); dfc->glade = glade_xml_new (EVOLUTION_GLADEDIR "/e-shell-config-default-folders.glade", NULL, NULL); diff --git a/shell/evolution-shell-client.c b/shell/evolution-shell-client.c index e5cabc34e4..f21e9860b6 100644 --- a/shell/evolution-shell-client.c +++ b/shell/evolution-shell-client.c @@ -393,10 +393,11 @@ evolution_shell_client_construct (EvolutionShellClient *shell_client, priv = shell_client->priv; g_return_if_fail (priv->activity_interface == CORBA_OBJECT_NIL); - priv->corba_objref = corba_shell; - CORBA_exception_init (&ev); + + priv->corba_objref = CORBA_Object_duplicate (corba_shell, &ev); Bonobo_Unknown_ref (priv->corba_objref, &ev); + CORBA_exception_free (&ev); priv->activity_interface = query_shell_interface (shell_client, "IDL:GNOME/Evolution/Activity:1.0"); @@ -408,8 +409,7 @@ evolution_shell_client_construct (EvolutionShellClient *shell_client, * evolution_shell_client_new: * @corba_shell: A pointer to the CORBA Evolution::Shell interface. * - * Create a new client object for @corba_shell. The shell client will - * free @corba_shell when it is destroyed. + * Create a new client object for @corba_shell. * * Return value: A pointer to the Evolution::Shell client BonoboObject. **/ diff --git a/shell/evolution-shell-component.c b/shell/evolution-shell-component.c index ea28fa8cf4..abeab450ab 100644 --- a/shell/evolution-shell-component.c +++ b/shell/evolution-shell-component.c @@ -400,7 +400,6 @@ impl_setOwner (PortableServer_Servant servant, BonoboObject *bonobo_object; EvolutionShellComponent *shell_component; EvolutionShellComponentPrivate *priv; - GNOME_Evolution_Shell shell_duplicate; bonobo_object = bonobo_object_from_servant (servant); shell_component = EVOLUTION_SHELL_COMPONENT (bonobo_object); @@ -427,10 +426,8 @@ impl_setOwner (PortableServer_Servant servant, return; } - shell_duplicate = CORBA_Object_duplicate (shell, ev); - if (ev->_major == CORBA_NO_EXCEPTION) { - priv->owner_client = evolution_shell_client_new (shell_duplicate); + priv->owner_client = evolution_shell_client_new (shell); g_signal_emit (shell_component, signals[OWNER_SET], 0, priv->owner_client, evolution_homedir); setup_owner_pinging (shell_component); -- cgit v1.2.3