patches/redshift-03-gerror-leak.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 3438 a1dade982b66
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3438
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     1
--- redshift-1.6.orig/src/location-gnome-clock.c	2011-04-30 01:48:08.173781561 -0400
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     2
+++ redshift-1.6/src/location-gnome-clock.c	2011-04-30 01:55:19.919457825 -0400
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     3
@@ -37,16 +37,14 @@
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     4
 static char *
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     5
 find_current_city(GConfClient *client, const char *id)
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     6
 {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     7
-	GError *error = NULL;
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     8
-
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
     9
 	char *current_city = NULL;
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    10
 	char *cities_key = g_strdup_printf("/apps/panel/applets/%s"
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    11
 					   "/prefs/cities", id);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    12
 	GSList *cities = gconf_client_get_list(client,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    13
 					       cities_key,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    14
-					       GCONF_VALUE_STRING, &error);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    15
+					       GCONF_VALUE_STRING, NULL);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    16
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    17
-	if (error) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    18
+	if (cities == NULL) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    19
 		fprintf(stderr, _("Error reading city list: `%s'.\n"),
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    20
 			cities_key);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    21
 		g_free(cities_key);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    22
@@ -72,17 +70,23 @@
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    23
 {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    24
 	g_type_init();
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    25
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    26
-	GError *error = NULL;
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    27
 	GConfClient *client = gconf_client_get_default();
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    28
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    29
 	/* Get a list of active applets in the panel. */
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    30
 	GSList *applets = gconf_client_get_list(client,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    31
 			"/apps/panel/general/applet_id_list",
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    32
-			GCONF_VALUE_STRING, &error);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    33
-	if (error) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    34
+			GCONF_VALUE_STRING, NULL);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    35
+ 	if (applets == NULL) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    36
+ 		/* JDS has an alternate list of applets. */
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    37
+ 		applets = gconf_client_get_list(client,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    38
+ 				"/apps/panel/general/applet_id_list_jds",
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    39
+ 				GCONF_VALUE_STRING, NULL);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    40
+ 	}
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    41
+ 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    42
+ 	if (applets == NULL) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    43
 		fputs(_("Cannot list GNOME panel applets.\n"), stderr);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    44
-		g_object_unref(client);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    45
 		g_slist_free(applets);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    46
+		g_object_unref(client);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    47
 		return -1;
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    48
 	}
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    49
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    50
@@ -102,11 +106,11 @@
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    51
 			char *key = g_strdup_printf("/apps/panel/applets/%s"
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    52
 						    "/bonobo_iid", id);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    53
 			char *bonobo_iid = gconf_client_get_string(client, key,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    54
-								   &error);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    55
+								   NULL);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    56
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    57
-			/* Try both gnome-panel 2.30.x and earlier bonobo_iid key and
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    58
-			   newer applet_iid. */
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    59
-			if (!error && bonobo_iid != NULL &&
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    60
+			/* Try both gnome-panel 2.30.x and earlier bonobo_iid
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    61
+			   key and newer applet_iid. */
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    62
+			if (bonobo_iid != NULL &&
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    63
 			    !strcmp(bonobo_iid, "OAFIID:GNOME_ClockApplet")) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    64
 				clock_applet_count += 1;
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    65
 				current_city = find_current_city(client, id);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    66
@@ -115,13 +119,15 @@
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    67
 				g_free(key);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    68
 				key = g_strdup_printf("/apps/panel/applets/%s"
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    69
 					    "/applet_iid", id);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    70
-				char *applet_iid = gconf_client_get_string(client, key,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    71
-									    &error);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    72
+				char *applet_iid = gconf_client_get_string(
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    73
+						client, key, NULL);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    74
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    75
-				if (!error && applet_iid != NULL &&
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    76
-				    !strcmp(applet_iid, "ClockAppletFactory::ClockApplet")) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    77
+				if (applet_iid != NULL &&
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    78
+				    !strcmp(applet_iid, "ClockAppletFactory::"
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    79
+					    "ClockApplet")) {
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    80
 					clock_applet_count += 1;
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    81
-					current_city = find_current_city(client, id);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    82
+					current_city = find_current_city(client,
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    83
+							id);
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    84
 				}
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    85
 
a1dade982b66 2011-04-30 Albert Lee <[email protected]>
trisk
parents:
diff changeset
    86
 				g_free(applet_iid);