[gnome-photos] change-monitor: Avoid a copy
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] change-monitor: Avoid a copy
- Date: Mon, 13 Jan 2014 06:59:24 +0000 (UTC)
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]