Enlightenment CVS committal

Author  : rephorm
Project : e17
Module  : proto

Dir     : e17/proto/e_dbus/src/lib/dbus


Modified Files:
        E_DBus.h e_dbus_message.c e_dbus_util.c 


Log Message:
include errors in method return callbacks

===================================================================
RCS file: /cvs/e/e17/proto/e_dbus/src/lib/dbus/E_DBus.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- E_DBus.h    11 Jul 2007 00:47:11 -0000      1.10
+++ E_DBus.h    11 Jul 2007 00:47:19 -0000      1.11
@@ -112,7 +112,7 @@
  * @param event_data a struct containing the return data.
  */
 typedef void (*E_DBus_Callback_Func) (void *user_data, void *method_return, 
DBusError *error);
-typedef DBusMessage *(*E_DBus_Unmarshal_Func) (DBusMessage *msg);
+typedef DBusMessage *(*E_DBus_Unmarshal_Func) (DBusMessage *msg, DBusError 
*err);
 
 typedef struct E_DBus_Callback E_DBus_Callback;
 struct E_DBus_Callback
@@ -126,7 +126,7 @@
 
 void e_dbus_callback_free(E_DBus_Callback *callback);
 void e_dbus_callback_call(E_DBus_Callback *cb, void *data, DBusError *error);
-void *e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg);
+void *e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg, 
DBusError *err);
 
 const char *e_dbus_basic_type_as_string(int type);
 
===================================================================
RCS file: /cvs/e/e17/proto/e_dbus/src/lib/dbus/e_dbus_message.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_dbus_message.c    11 Jul 2007 00:47:11 -0000      1.4
+++ e_dbus_message.c    11 Jul 2007 00:47:19 -0000      1.5
@@ -89,12 +89,19 @@
 {
   E_DBus_Callback *cb = data;
   void *method_return = NULL;
+  DBusError new_err;
   if (!cb) return;
 
+  dbus_error_init(&new_err);
   if (!dbus_error_is_set(err))
-    method_return = e_dbus_callback_unmarshal(cb, msg);
+    method_return = e_dbus_callback_unmarshal(cb, msg, &new_err);
+  else
+    dbus_move_error(err, &new_err);
 
-  e_dbus_callback_call(cb, method_return, err);
+  e_dbus_callback_call(cb, method_return, &new_err);
+
+  if (dbus_error_is_set(&new_err))
+    dbus_error_free(&new_err);
 }
 
 DBusPendingCall *
===================================================================
RCS file: /cvs/e/e17/proto/e_dbus/src/lib/dbus/e_dbus_util.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_dbus_util.c       11 Jul 2007 00:47:11 -0000      1.4
+++ e_dbus_util.c       11 Jul 2007 00:47:19 -0000      1.5
@@ -39,12 +39,11 @@
     cb->cb_func(cb->user_data, data, error);
 }
 
-//XXX this probably should be passed an error pointer
 void *
-e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg)
+e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg, DBusError 
*err)
 {
   if (cb && cb->unmarshal_func)
-    return cb->unmarshal_func(msg);
+    return cb->unmarshal_func(msg, err);
   else
     return NULL;
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to