[gnome-photos] change-monitor: Avoid a copy



commit 5fab9205e86995cd063e5922c86734d09d3da0ae
Author: Debarshi Ray <debarshir gnome org>
Date:   Sun Jan 5 23:55:42 2014 +0100

    change-monitor: Avoid a copy
    
    It appears to be worth our while to try and optimize this code.
    
    Fixes: https://bugzilla.gnome.org/721402

 src/photos-tracker-change-monitor.c |   27 +++------------------------
 src/photos-tracker-queue.c          |    3 ++-
 2 files changed, 5 insertions(+), 25 deletions(-)
---
diff --git a/src/photos-tracker-change-monitor.c b/src/photos-tracker-change-monitor.c
index f1c13ee..fae56e1 100644
--- a/src/photos-tracker-change-monitor.c
+++ b/src/photos-tracker-change-monitor.c
@@ -88,25 +88,6 @@ struct _TrackerResourcesEvent
 } __attribute__ ((packed));
 
 
-static PhotosTrackerChangeMonitorQueryData *
-photos_tracker_change_monitor_query_data_copy (PhotosTrackerChangeMonitorQueryData *data)
-{
-  PhotosTrackerChangeMonitorQueryData *copy;
-
-  copy = g_slice_new0 (PhotosTrackerChangeMonitorQueryData);
-
-  copy->self = g_object_ref (data->self);
-
-  copy->id_table = data->id_table;
-  data->id_table = NULL;
-
-  copy->events = data->events;
-  data->events = NULL;
-
-  return copy;
-}
-
-
 static void
 photos_tracker_change_monitor_query_data_free (PhotosTrackerChangeMonitorQueryData *data)
 {
@@ -242,13 +223,11 @@ photos_tracker_change_monitor_query_executed (GObject *source_object, GAsyncResu
     {
       g_warning ("Unable to resolve item URNs for graph changes: %s", error->message);
       g_error_free (error);
+      photos_tracker_change_monitor_query_data_free (data);
       return;
     }
 
-  tracker_sparql_cursor_next_async (cursor,
-                                    NULL,
-                                    photos_tracker_change_monitor_cursor_next,
-                                    photos_tracker_change_monitor_query_data_copy (data));
+  tracker_sparql_cursor_next_async (cursor, NULL, photos_tracker_change_monitor_cursor_next, data);
   g_object_unref (cursor);
 }
 
@@ -286,7 +265,7 @@ photos_tracker_change_monitor_process_events (PhotosTrackerChangeMonitor *self)
                                NULL,
                                photos_tracker_change_monitor_query_executed,
                                data,
-                               (GDestroyNotify) photos_tracker_change_monitor_query_data_free);
+                               NULL);
 
   g_string_free (sparql, TRUE);
   return G_SOURCE_REMOVE;
diff --git a/src/photos-tracker-queue.c b/src/photos-tracker-queue.c
index eb89a19..766aca5 100644
--- a/src/photos-tracker-queue.c
+++ b/src/photos-tracker-queue.c
@@ -112,7 +112,8 @@ photos_tracker_queue_collector (GObject *source_object, GAsyncResult *res, gpoin
   PhotosTrackerQueueData *data;
 
   data = g_queue_pop_head (priv->queue);
-  (*data->callback) (source_object, res, data->user_data);
+  if (data->callback != NULL)
+    (*data->callback) (source_object, res, data->user_data);
   priv->running = FALSE;
   photos_tracker_queue_data_free (data);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]