diff options
Diffstat (limited to 'calendar/pcs/cal.c')
-rw-r--r-- | calendar/pcs/cal.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c index 3129665466..e723c077cb 100644 --- a/calendar/pcs/cal.c +++ b/calendar/pcs/cal.c @@ -456,6 +456,8 @@ Cal_get_query (PortableServer_Servant servant, Cal *cal; CalPrivate *priv; Query *query; + CORBA_Environment ev2; + GNOME_Evolution_Calendar_Query query_copy; cal = CAL (bonobo_object_from_servant (servant)); priv = cal->priv; @@ -468,7 +470,20 @@ Cal_get_query (PortableServer_Servant servant, return CORBA_OBJECT_NIL; } - return BONOBO_OBJREF (query); + CORBA_exception_init (&ev2); + query_copy = CORBA_Object_duplicate (BONOBO_OBJREF (query), &ev2); + if (ev2._major != CORBA_NO_EXCEPTION) { + CORBA_exception_free (&ev2); + g_message ("Cal_get_query(): Could not duplicate the query reference"); + CORBA_exception_set (ev, CORBA_USER_EXCEPTION, + ex_GNOME_Evolution_Calendar_Cal_CouldNotCreate, + NULL); + return CORBA_OBJECT_NIL; + } + + CORBA_exception_free (&ev2); + + return query_copy; } /** |