summaryrefslogtreecommitdiffstats
path: root/src/ck-manager.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-03-13 11:41:31 -0400
committerWilliam Jon McCann <mccann@jhu.edu>2007-03-13 11:41:31 -0400
commit4a639d92a6f1a5dd8f59d57ade37d4cff420b66a (patch)
treecb6081df5fd92f3b3edd28d884e887fb4cc49424 /src/ck-manager.c
parent1e7af7e9c648fb461e0d36d037d2920519159525 (diff)
various leak fixes
Diffstat (limited to 'src/ck-manager.c')
-rw-r--r--src/ck-manager.c38
1 files changed, 35 insertions, 3 deletions
diff --git a/src/ck-manager.c b/src/ck-manager.c
index 9b51000..8e66419 100644
--- a/src/ck-manager.c
+++ b/src/ck-manager.c
@@ -375,6 +375,11 @@ find_seat_for_session (CkManager *manager,
g_free (sid);
}
+ g_free (display_device);
+ g_free (x11_display_device);
+ g_free (x11_display);
+ g_free (remote_host_name);
+
return seat;
}
@@ -627,6 +632,8 @@ add_param_int (GPtrArray *parameters,
0, key,
1, &val,
G_MAXUINT);
+ g_value_unset (&val);
+
g_ptr_array_add (parameters, g_value_get_boxed (&param_val));
}
@@ -654,6 +661,8 @@ add_param_boolean (GPtrArray *parameters,
0, key,
1, &val,
G_MAXUINT);
+ g_value_unset (&val);
+
g_ptr_array_add (parameters, g_value_get_boxed (&param_val));
}
@@ -676,6 +685,8 @@ add_param_string (GPtrArray *parameters,
0, key,
1, &val,
G_MAXUINT);
+ g_value_unset (&val);
+
g_ptr_array_add (parameters, g_value_get_boxed (&param_val));
}
@@ -716,6 +727,7 @@ parse_output (const char *output)
vals = g_strsplit (lines[i], " = ", 2);
if (vals == NULL || vals[0] == NULL) {
+ g_strfreev (vals);
continue;
}
@@ -728,6 +740,8 @@ parse_output (const char *output)
g_strfreev (vals);
}
+ g_strfreev (lines);
+
return parameters;
}
@@ -745,6 +759,22 @@ job_data_free (JobData *data)
}
static void
+parameters_free (GPtrArray *parameters)
+{
+ int i;
+
+ for (i = 0; i < parameters->len; i++) {
+ gpointer data;
+ data = g_ptr_array_index (parameters, i);
+ if (data != NULL) {
+ g_boxed_free (CK_TYPE_PARAMETER_STRUCT, data);
+ }
+ }
+
+ g_ptr_array_free (parameters, TRUE);
+}
+
+static void
job_completed (CkJob *job,
int status,
JobData *data)
@@ -765,9 +795,7 @@ job_completed (CkJob *job,
data->leader_info,
parameters,
data->context);
-
- g_ptr_array_free (parameters, TRUE);
-
+ parameters_free (parameters);
}
/* remove job from queue */
@@ -886,6 +914,9 @@ create_session_for_sender (CkManager *manager,
context);
}
+ g_free (cookie);
+ g_free (ssid);
+
return TRUE;
}
@@ -1192,6 +1223,7 @@ remove_session_for_cookie (CkManager *manager,
g_hash_table_remove (manager->priv->sessions, ssid);
+ g_free (sid);
g_free (ssid);
manager_update_system_idle_hint (manager);