Cleanup.
authorenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 23 Nov 2008 19:56:16 +0000 (19:56 +0000)
committerenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 23 Nov 2008 19:56:16 +0000 (19:56 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@37776 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/nm/E_Nm.h
src/lib/nm/e_nms_connection.c

index 9d14ef9..56996b6 100644 (file)
@@ -7,6 +7,8 @@
 /*
  * TODO:
  * - Return objects instead of object paths.
+ * - Define who is responsible to clean up mem
+ * - Only listen to signals if a callback is connected
  */
 
 #ifdef EAPI
index b710cf5..3c5c072 100644 (file)
@@ -17,23 +17,11 @@ cb_updated(void *data, DBusMessage *msg)
     conn->updated(&(conn->conn), settings);
 }
 
-static void *
-cb_unmarshal_settings(DBusMessage *msg, DBusError *err)
-{
-  if (dbus_error_is_set(err)) return NULL;
-  return parse_settings(msg);
-}
-
-static void
-cb_free_settings(void *data)
-{
-  ecore_hash_destroy(data);
-}
-
 static void
-cb_nms_settings(void *data, void *reply, DBusError *err)
+cb_nms_settings(void *data, DBusMessage *msg, DBusError *err)
 {
-  Reply_Data  *d;
+  Reply_Data *d;
+  Ecore_Hash *settings;
 
   d = data;
   if (dbus_error_is_set(err))
@@ -44,7 +32,8 @@ cb_nms_settings(void *data, void *reply, DBusError *err)
     return;
   }
 
-  d->cb_func(d->data, reply);
+  settings = parse_settings(msg);
+  d->cb_func(d->data, settings);
   free(d);
 }
 
@@ -113,7 +102,7 @@ e_nms_connection_get_settings(E_NMS_Connection *connection, int (*cb_func)(void
 
   msg = e_nms_connection_call_new(conn->conn.service_name, conn->conn.path, "GetSettings");
 
-  ret = e_dbus_method_call_send(conn->nmi->conn, msg, cb_unmarshal_settings, cb_nms_settings, cb_free_settings, -1, d) ? 1 : 0;
+  ret = e_dbus_message_send(conn->nmi->conn, msg, cb_nms_settings, -1, d) ? 1 : 0;
   dbus_message_unref(msg);
   return ret;
 }