Index: src/trackerd/tracker-dbus-methods.c =================================================================== --- src/trackerd/tracker-dbus-methods.c (revision 537) +++ src/trackerd/tracker-dbus-methods.c (working copy) @@ -403,7 +403,14 @@ tracker_dbus_method_get_stats (DBusRec *rec) { DBConnection *db_con; - char ***res; + char ***res_data; + char ***res_emails; + char **res; + guint res_data_length = 0; + guint res_emails_length = 0; + guint res_length; + int i, j, k; + char **row; g_return_if_fail (rec && rec->user_data); @@ -411,12 +418,47 @@ tracker_log ("Executing GetStats Dbus Call"); - res = tracker_exec_proc (db_con, "GetStats", 0); + res_data = tracker_exec_proc (db_con, "GetStats", 0); + res_emails = tracker_exec_proc (db_con->emails, "GetStats", 0); + + for (k = 0; (row = tracker_db_get_row (res_data, k)); k++) { + g_debug ("%s : %s", row[0], row[1]); + res_data_length++; + } + + for (k = 0; (row = tracker_db_get_row (res_emails, k)); k++) { + g_debug ("%s : %s", row[0], row[1]); + res_emails_length++; + } + + res_length = res_data_length + res_emails_length; + + g_debug ("creating new res with size %u + %u = %u", + res_data_length, res_emails_length, res_length); + + res = g_new0 (char *, res_length+1); + res[res_length] = NULL; - tracker_dbus_reply_with_query_result (rec, res); + i = 0; - tracker_db_free_result (res); + for (j = 0; (row = tracker_db_get_row (res_data, j)); ++i, ++j) { + res[i] = (gpointer) row; + } + for (j = 0; (row = tracker_db_get_row (res_emails, j)); ++i, ++j) { + res[i] = (gpointer) row; + } + + g_debug ("i = %u", i); + + tracker_db_free_result (res_data); + tracker_db_free_result (res_emails); + + g_debug ("replying..."); + tracker_dbus_reply_with_query_result (rec, (char ***) res); + + g_debug ("freeing..."); + tracker_db_free_result ((char ***) res); } Index: src/trackerd/tracker-utils.c =================================================================== --- src/trackerd/tracker-utils.c (revision 537) +++ src/trackerd/tracker-utils.c (working copy) @@ -703,6 +703,7 @@ count = strftime (buffer, sizeof (buffer), "%FT%T%z", &loctime); if (count > 0) { + //g_print ("** tracker_date_to_str(): %s", buffer); return g_strdup (buffer); } else { return NULL;