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
This commit is contained in:
Ettore Perazzoli
2003-01-10 21:39:33 +00:00
parent 8c37e1b2ee
commit 472a6e0fa0
5 changed files with 24 additions and 16 deletions

View File

@ -1,3 +1,20 @@
2003-01-10 Ettore Perazzoli <ettore@ximian.com>
* 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 <danw@ximian.com>
* e-storage-set-view.c (popup_folder_menu): Make this work again.

View File

@ -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);

View File

@ -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);

View File

@ -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.
**/

View File

@ -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);