wireplumber/lib/wp
George Kiagiadakis d264bc460c registry: fix issues with dangling WpGlobal objects causing assertion failures
The main problem observed is when a link that is owned by a WpLink
is removed from the server because one of the linked nodes is gone.
This would cause the APPEARS_ON_REGISTRY flag to go away but the
WpGlobal would still remain in the globals list...

To fix this, forcibly remove the global from the globals list when
it is removed from the registry, even if it is still owned by some
proxy. The proxy at that point is unable to function anyway, because
we make sure to destroy the pw_proxy by removing FEATURE_BOUND when
the global is removed from the registry.

Additionally, ref global->proxy before removing FEATURE_BOUND to
prevent crashing. If the proxy owns the global and the pw-proxy-destroyed
signal causes whoever owns the proxy to drop his reference, _deactivate()
will crash because no-one will be holding a ref to the proxy.
2021-04-05 16:03:55 +03:00
..
private lib: make WpImplEndpoint and WpImplEndpointLink public 2021-03-18 12:10:37 -04:00
client.c Merge branch 'master' into next-lua 2020-12-21 18:56:52 +02:00
client.h lib: refactor WpProxy 2020-11-13 19:54:48 +02:00
component-loader.c wp: export functions to get the module & config dirs 2021-02-03 17:16:51 +02:00
component-loader.h lib: introduce WpComponentLoader and remove WpModule 2021-02-03 17:16:51 +02:00
core.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
core.h lib: introduce WpComponentLoader and remove WpModule 2021-02-03 17:16:51 +02:00
debug.c Merge branch 'master' into next-lua 2020-12-21 18:56:52 +02:00
debug.h debug: don't crash if an object is NULL in wp_*_object() and point it out in the log 2020-05-20 18:27:09 +03:00
defs.h defs: add a new WP_PRIVATE_API function annotation 2020-11-16 10:28:56 +02:00
device.c spa-device: do not assert if the activation transition fails 2021-03-16 16:15:32 +02:00
device.h spa-device: derive from WpProxy and manage child objects internally 2021-01-21 09:42:07 +02:00
endpoint-link.c si-interfaces: make WpSiLink work with WpSiPortInfo instead of WpSiEndpoint 2021-03-26 16:16:02 -04:00
endpoint-link.h lib: make WpImplEndpoint and WpImplEndpointLink public 2021-03-18 12:10:37 -04:00
endpoint.c modules: use dots instead of dashes for session item properties 2021-04-02 11:22:22 -04:00
endpoint.h lib: make WpImplEndpoint and WpImplEndpointLink public 2021-03-18 12:10:37 -04:00
error.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
error.h lib: add extensive API documentation 2020-02-19 10:43:07 +02:00
global-proxy.c pw-object-mixin: refactor, implement param caching and features for impl objects 2020-11-25 22:44:29 +02:00
global-proxy.h lib: refactor WpProxy 2020-11-13 19:54:48 +02:00
iterator.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
iterator.h iterator: add version field in the methods struct 2020-11-16 11:16:35 +02:00
link.c pw-object-mixin: refactor, implement param caching and features for impl objects 2020-11-25 22:44:29 +02:00
link.h lib: refactor WpProxy 2020-11-13 19:54:48 +02:00
meson.build lib: remove WpEndpointStream API 2021-03-18 12:10:37 -04:00
metadata.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
metadata.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
node.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
node.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
object-interest.c object-interest: add support for session item properties 2021-03-18 14:30:11 -04:00
object-interest.h object-interest: add a NOT_EQUALS verb 2021-02-03 17:16:51 +02:00
object-manager.c registry: fix issues with dangling WpGlobal objects causing assertion failures 2021-04-05 16:03:55 +03:00
object-manager.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
object.c object: deactivate only the features that were previously active 2021-03-25 18:13:11 +02:00
object.h object: add wp_object_activate_closure API 2021-03-13 20:10:30 -05:00
plugin.c plugin: inherit from WpObject 2021-02-03 17:16:51 +02:00
plugin.h plugin: inherit from WpObject 2021-02-03 17:16:51 +02:00
port.c pw-object-mixin: refactor, implement param caching and features for impl objects 2020-11-25 22:44:29 +02:00
port.h lib: refactor WpProxy 2020-11-13 19:54:48 +02:00
properties.c properties: add wp_properties_sort() 2021-03-26 19:06:06 +02:00
properties.h properties: add wp_properties_sort() 2021-03-26 19:06:06 +02:00
proxy-interfaces.c rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
proxy-interfaces.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
proxy.c proxy: add a method to query the interface type 2021-02-04 16:51:25 +02:00
proxy.h proxy: add a method to query the interface type 2021-02-04 16:51:25 +02:00
session-bin.c session-bin: remove unused wp_session_bin_new API 2021-03-18 12:10:37 -04:00
session-bin.h session-bin: remove unused wp_session_bin_new API 2021-03-18 12:10:37 -04:00
session-item.c session-item: add id property 2021-03-26 16:16:02 -04:00
session-item.h session-item: add id property 2021-03-26 16:16:02 -04:00
session.c session-item: refactor and inherit from WpObject 2021-03-18 14:30:05 -04:00
session.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
si-factory.c session-item: refactor and inherit from WpObject 2021-03-18 14:30:05 -04:00
si-factory.h session-item: refactor and inherit from WpObject 2021-03-18 14:30:05 -04:00
si-interfaces.c si-interfaces: make WpSiLink work with WpSiPortInfo instead of WpSiEndpoint 2021-03-26 16:16:02 -04:00
si-interfaces.h si-interfaces: make WpSiLink work with WpSiPortInfo instead of WpSiEndpoint 2021-03-26 16:16:02 -04:00
spa-pod.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
spa-pod.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
spa-type.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
spa-type.h rename all foo_iterate APIs to foo_new_iterator 2021-02-05 11:33:23 -05:00
state.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
state.h state: use GKeyFile API to keep state in disk 2021-01-08 14:34:13 -05:00
transition.c lib: documentation fixes 2021-03-04 19:10:10 +02:00
transition.h transition: add the ability to use a GClosure instead of a GAsyncReadyCallback 2020-05-08 19:23:23 +03:00
wp.c lib: remove WpEndpointStream API 2021-03-18 12:10:37 -04:00
wp.h lib: remove WpEndpointStream API 2021-03-18 12:10:37 -04:00
wpversion.h.in lib: add a version header 2020-06-02 18:26:40 +03:00