Fixes #58197
authorRodrigo Moya <rodrigo@novell.com>
Thu, 27 May 2004 12:24:12 +0000 (12:24 +0000)
committerRodrigo Moya <rodrigo@src.gnome.org>
Thu, 27 May 2004 12:24:12 +0000 (12:24 +0000)
2004-05-27  Rodrigo Moya <rodrigo@novell.com>

Fixes #58197

* libedata-cal/e-cal-backend.c (e_cal_backend_create_object,
e_cal_backend_modify_object): removed assertions on method
implementations, since backends can perfectly have unimplemented
methods. Instead, notify the error.

calendar/ChangeLog
calendar/libedata-cal/e-cal-backend.c

index 2ebaf5b..c2b9643 100644 (file)
@@ -1,3 +1,12 @@
+2004-05-27  Rodrigo Moya <rodrigo@novell.com>
+
+       Fixes #58197
+
+       * libedata-cal/e-cal-backend.c (e_cal_backend_create_object,
+       e_cal_backend_modify_object): removed assertions on method
+       implementations, since backends can perfectly have unimplemented
+       methods. Instead, notify the error.
+
 2004-05-25  Sivaiah Nallagatla <snallagatla@novell.com>
 
         * backends/groupwise/e-cal-backends-groupwise.c (form_uri) :
index 6a75c8b..4d3ac24 100644 (file)
@@ -808,8 +808,10 @@ e_cal_backend_create_object (ECalBackend *backend, EDataCal *cal, const char *ca
        g_return_if_fail (E_IS_CAL_BACKEND (backend));
        g_return_if_fail (calobj != NULL);
 
-       g_assert (CLASS (backend)->create_object != NULL);
-       (* CLASS (backend)->create_object) (backend, cal, calobj);
+       if (CLASS (backend)->create_object)
+               (* CLASS (backend)->create_object) (backend, cal, calobj);
+       else
+               e_data_cal_notify_object_created (cal, GNOME_Evolution_Calendar_PermissionDenied, NULL, NULL);
 }
 
 void
@@ -819,8 +821,10 @@ e_cal_backend_modify_object (ECalBackend *backend, EDataCal *cal, const char *ca
        g_return_if_fail (E_IS_CAL_BACKEND (backend));
        g_return_if_fail (calobj != NULL);
 
-       g_assert (CLASS (backend)->modify_object != NULL);
-       (* CLASS (backend)->modify_object) (backend, cal, calobj, mod);
+       if (CLASS (backend)->modify_object)
+               (* CLASS (backend)->modify_object) (backend, cal, calobj, mod);
+       else
+               e_data_cal_notify_object_removed (cal, GNOME_Evolution_Calendar_PermissionDenied, NULL, NULL);
 }
 
 /**