From d5bf31bdaf850fe01b2c43ae14d85346b600a89d Mon Sep 17 00:00:00 2001 From: Evangelos Ribeiro Tzaras Date: Wed, 7 Jul 2021 16:12:23 +0200 Subject: [PATCH] manager: Temporarily hold a reference to provider being unloaded --- src/calls-manager.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calls-manager.c b/src/calls-manager.c index d5d7b3e..2c1045a 100644 --- a/src/calls-manager.c +++ b/src/calls-manager.c @@ -379,13 +379,16 @@ remove_provider (CallsManager *self, { GListModel *origins; guint n_items; - CallsProvider *provider; + g_autoptr (CallsProvider) provider; g_assert (CALLS_IS_MANAGER (self)); g_assert (name); provider = g_hash_table_lookup (self->providers, name); - if (provider == NULL) { + if (provider) { + /* Hold a ref since g_hash_table_remove () might drop the last one */ + g_object_ref (provider); + } else { g_warning ("Trying to remove provider %s which has not been found", name); return; }