aboutsummaryrefslogtreecommitdiffstats
path: root/shell/evolution-shell-component-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/evolution-shell-component-client.c')
-rw-r--r--shell/evolution-shell-component-client.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/shell/evolution-shell-component-client.c b/shell/evolution-shell-component-client.c
index d177cf2577..1f6b0273b6 100644
--- a/shell/evolution-shell-component-client.c
+++ b/shell/evolution-shell-component-client.c
@@ -127,6 +127,16 @@ dispatch_callback (EvolutionShellComponentClient *shell_component_client,
(* callback) (shell_component_client, result, callback_data);
}
+static EvolutionShellComponentResult
+shell_component_result_from_corba_exception (const CORBA_Environment *ev)
+{
+ if (ev->_major == CORBA_NO_EXCEPTION)
+ return EVOLUTION_SHELL_COMPONENT_OK;
+ if (ev->_major == CORBA_SYSTEM_EXCEPTION)
+ return EVOLUTION_SHELL_COMPONENT_CORBAERROR;
+ return EVOLUTION_SHELL_COMPONENT_CORBAERROR; /* FIXME? */
+}
+
/* CORBA listener interface implementation. */
@@ -576,7 +586,7 @@ evolution_shell_component_client_async_create_folder (EvolutionShellComponentCli
if (ev._major != CORBA_NO_EXCEPTION && priv->callback != NULL) {
(* callback) (shell_component_client,
- shell_component_result_from_corba_exception (ev),
+ shell_component_result_from_corba_exception (&ev),
data);
priv->callback = NULL;
priv->callback_data = NULL;
@@ -637,7 +647,7 @@ evolution_shell_component_client_async_xfer_folder (EvolutionShellComponentClien
if (ev._major != CORBA_NO_EXCEPTION && priv->callback != NULL) {
(* callback) (shell_component_client,
- shell_component_result_from_corba_exception (ev),
+ shell_component_result_from_corba_exception (&ev),
data);
priv->callback = NULL;
priv->callback_data = NULL;