pipewire-object-mixin: fix memleak in GList
This commit is contained in:
@@ -123,7 +123,7 @@ enum_params_done (WpCore * core, GAsyncResult * res, gpointer data)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* remove the task from the stored list; ref is held by the g_autoptr */
|
/* remove the task from the stored list; ref is held by the g_autoptr */
|
||||||
d->enum_params_tasks = g_list_remove_link (d->enum_params_tasks, taskl);
|
d->enum_params_tasks = g_list_delete_link (d->enum_params_tasks, taskl);
|
||||||
|
|
||||||
wp_debug_object (instance, "got %u params, %s, task " WP_OBJECT_FORMAT,
|
wp_debug_object (instance, "got %u params, %s, task " WP_OBJECT_FORMAT,
|
||||||
params->len, error ? "with error" : "ok", WP_OBJECT_ARGS (task));
|
params->len, error ? "with error" : "ok", WP_OBJECT_ARGS (task));
|
||||||
@@ -149,7 +149,7 @@ enum_params_error (WpProxy * proxy, int seq, int res, const gchar *msg,
|
|||||||
|
|
||||||
taskl = g_list_find (d->enum_params_tasks, task);
|
taskl = g_list_find (d->enum_params_tasks, task);
|
||||||
if (taskl) {
|
if (taskl) {
|
||||||
d->enum_params_tasks = g_list_remove_link (d->enum_params_tasks, taskl);
|
d->enum_params_tasks = g_list_delete_link (d->enum_params_tasks, taskl);
|
||||||
g_task_return_new_error (task, WP_DOMAIN_LIBRARY,
|
g_task_return_new_error (task, WP_DOMAIN_LIBRARY,
|
||||||
WP_LIBRARY_ERROR_OPERATION_FAILED, "%s", msg);
|
WP_LIBRARY_ERROR_OPERATION_FAILED, "%s", msg);
|
||||||
}
|
}
|
||||||
@@ -432,7 +432,7 @@ wp_pw_object_mixin_store_param (WpPwObjectMixinData * data, guint32 id,
|
|||||||
}
|
}
|
||||||
else if (s && (flags & WP_PW_OBJECT_MIXIN_STORE_PARAM_REMOVE)) {
|
else if (s && (flags & WP_PW_OBJECT_MIXIN_STORE_PARAM_REMOVE)) {
|
||||||
wp_pw_object_mixin_param_store_free (s);
|
wp_pw_object_mixin_param_store_free (s);
|
||||||
data->params = g_list_remove_link (data->params, link);
|
data->params = g_list_delete_link (data->params, link);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -691,8 +691,9 @@ wp_pw_object_mixin_handle_pw_proxy_destroyed (WpProxy * proxy)
|
|||||||
GList *link;
|
GList *link;
|
||||||
for (link = g_list_first (d->enum_params_tasks);
|
for (link = g_list_first (d->enum_params_tasks);
|
||||||
link; link = g_list_first (d->enum_params_tasks)) {
|
link; link = g_list_first (d->enum_params_tasks)) {
|
||||||
d->enum_params_tasks = g_list_remove_link (d->enum_params_tasks, link);
|
GTask *task = G_TASK (link->data);
|
||||||
g_task_return_new_error (G_TASK (link->data),
|
d->enum_params_tasks = g_list_delete_link (d->enum_params_tasks, link);
|
||||||
|
g_task_return_new_error (task,
|
||||||
WP_DOMAIN_LIBRARY, WP_LIBRARY_ERROR_OPERATION_FAILED,
|
WP_DOMAIN_LIBRARY, WP_LIBRARY_ERROR_OPERATION_FAILED,
|
||||||
"pipewire proxy destroyed before finishing");
|
"pipewire proxy destroyed before finishing");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user