forked from pool/wireplumber
Antonio Larrosa
ee9013bfde
- Add patch from upstream to fix a crash when there's a link error (glfo#pipewire/wireplumber#76): * 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch - Update to version 0.4.4: * Highlights: - Implemented linking nodes in passthrough mode, which enables encoded iec958 / dsd audio passthrough - Streams are now sent an error if it was not possible to link them to a target (#63) - When linking nodes where at least one of them has an unpositioned channel layout, the other one is not reconfigured to match the channel layout; it is instead linked with a best effort port matching logic - Output route switches automatically to the latest one that has become available (#69) - Policy now respects the 'node.exclusive' and 'node.passive' properties - Many other minor policy fixes for a smoother desktop usage experience * API: - Fixed an issue with the LocalModule() constructor not accepting nil as well as the properties table properly - Added WpClient.send_error(), WpSpaPod.fixate() and - WpSpaPod.filter() (both in C and Lua) * Misc: - Bumped meson version requirement to 0.56 to be able to use meson.project_{source,build}_root() and ease integration with pipewire's build system as a subproject - wireplumber.service is now an alias to OBS-URL: https://build.opensuse.org/request/show/926162 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=5
37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From 6e67000d5e42fc30e6f7ff3ec5544e0be8dcbf00 Mon Sep 17 00:00:00 2001
|
|
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Date: Sat, 16 Oct 2021 09:51:00 +0300
|
|
Subject: [PATCH] si-standard-link: fix crash after returning a link error
|
|
|
|
If one link fails, the activation transition will return, but then
|
|
other links will continue to call the callback and try to access
|
|
the now invalid activation transition. With this change, the callback
|
|
is bound to the lifetime of the transition and will stop being called
|
|
after the transition returns
|
|
|
|
Fixes #76
|
|
---
|
|
modules/module-si-standard-link.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/modules/module-si-standard-link.c b/modules/module-si-standard-link.c
|
|
index 5dda0581..95ec7ca5 100644
|
|
--- a/modules/module-si-standard-link.c
|
|
+++ b/modules/module-si-standard-link.c
|
|
@@ -310,9 +310,10 @@ create_links (WpSiStandardLink * self, WpTransition * transition,
|
|
|
|
/* activate to ensure it is created without errors */
|
|
self->n_async_ops_wait++;
|
|
- wp_object_activate (WP_OBJECT (link),
|
|
+ wp_object_activate_closure (WP_OBJECT (link),
|
|
WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL, NULL,
|
|
- (GAsyncReadyCallback) on_link_activated, transition);
|
|
+ g_cclosure_new_object (
|
|
+ (GCallback) on_link_activated, G_OBJECT (transition)));
|
|
}
|
|
g_variant_iter_free (iter);
|
|
return self->node_links->len > 0;
|
|
--
|
|
GitLab
|
|
|