summaryrefslogtreecommitdiff
path: root/community/redshift/165_164.diff
diff options
context:
space:
mode:
Diffstat (limited to 'community/redshift/165_164.diff')
-rw-r--r--community/redshift/165_164.diff55
1 files changed, 55 insertions, 0 deletions
diff --git a/community/redshift/165_164.diff b/community/redshift/165_164.diff
new file mode 100644
index 000000000..663b5663b
--- /dev/null
+++ b/community/redshift/165_164.diff
@@ -0,0 +1,55 @@
+=== modified file 'src/location-geoclue.c'
+--- src/location-geoclue.c 2011-03-27 22:14:58 +0000
++++ src/location-geoclue.c 2011-07-12 20:30:30 +0000
+@@ -50,14 +50,20 @@
+ int
+ location_geoclue_start(location_geoclue_state_t *state)
+ {
+- GeoclueMaster *master = NULL;
+- GeoclueMasterClient *client = NULL;
+- GError *error = NULL;
+- gchar *name = NULL;
++ if (state->provider && state->provider_path) {
++ state->position = geoclue_position_new(state->provider,
++ state->provider_path);
++ } else {
++ GeoclueMaster *master = geoclue_master_get_default();
++ GeoclueMasterClient *client = geoclue_master_create_client(master,
++ NULL, NULL);
++ GError *error = NULL;
+
+- if (!(state->provider && state->provider_path)) {
+- master = geoclue_master_get_default();
+- client = geoclue_master_create_client(master, NULL, NULL);
++ if (client == NULL) {
++ g_printerr(_("Unable to obtain master client.\n"));
++ g_object_unref(master);
++ return -1;
++ }
+
+ if (!geoclue_master_client_set_requirements(client,
+ GEOCLUE_ACCURACY_LEVEL_REGION,
+@@ -68,15 +74,18 @@
+ error->message);
+ g_error_free(error);
+ g_object_unref(client);
++ g_object_unref(master);
+
+ return -1;
+ }
+
+ state->position = geoclue_master_client_create_position(client, NULL);
+- } else {
+- state->position = geoclue_position_new(state->provider,
+- state->provider_path);
+- }
++
++ g_object_unref(client);
++ g_object_unref(master);
++ }
++
++ gchar *name = NULL;
+
+ if (geoclue_provider_get_provider_info(GEOCLUE_PROVIDER(state->position),
+ &name, NULL, NULL)) {
+