Use correct parent class when chaining up overridden functions
How `g_type_class_peek ()` was used it didn't return the correct parent class in most cases. G_DEFINE_TYPE macro creates a pointer we can use to get the parent class `n_p_parent_class`. Because we didn't use the correct parent class the object initialisation wasn't fully completed for some GtkWidgets. See https://developer.gnome.org/gobject/stable/chapter-gobject.html#gobject-instantiation for more information. This commit makes use of the `n_p_parent_class pointer` created for this specific use case where ever possible. Fixes: https://source.puri.sm/Librem5/calls/issues/118
This commit is contained in:
@@ -204,7 +204,6 @@ set_property (GObject *object,
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsDummyCall *self = CALLS_DUMMY_CALL (object);
|
||||
|
||||
if (self->inbound)
|
||||
@@ -217,7 +216,7 @@ constructed (GObject *object)
|
||||
g_timeout_add_seconds (1, (GSourceFunc)outbound_timeout_cb, self);
|
||||
}
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_dummy_call_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
@@ -244,12 +243,11 @@ get_property (GObject *object,
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsDummyCall *self = CALLS_DUMMY_CALL (object);
|
||||
|
||||
g_free (self->number);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_dummy_call_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -217,24 +217,22 @@ set_property (GObject *object,
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsDummyOrigin *self = CALLS_DUMMY_ORIGIN (object);
|
||||
|
||||
remove_calls (self, NULL);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_dummy_origin_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsDummyOrigin *self = CALLS_DUMMY_ORIGIN (object);
|
||||
|
||||
g_string_free (self->name, TRUE);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_dummy_origin_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -102,7 +102,6 @@ usr1_handler (CallsDummyProvider *self)
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsDummyProvider *self = CALLS_DUMMY_PROVIDER (object);
|
||||
|
||||
calls_dummy_provider_add_origin (self, "Dummy origin");
|
||||
@@ -111,7 +110,7 @@ constructed (GObject *object)
|
||||
(GSourceFunc)usr1_handler,
|
||||
self);
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_dummy_provider_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
@@ -136,13 +135,12 @@ get_property (GObject *object,
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsDummyProvider *self = CALLS_DUMMY_PROVIDER (object);
|
||||
|
||||
g_list_free_full (self->origins, g_object_unref);
|
||||
self->origins = NULL;
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_dummy_provider_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -311,7 +311,6 @@ set_property (GObject *object,
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMCall *self = CALLS_MM_CALL (object);
|
||||
MmGdbusCall *gdbus_call = MM_GDBUS_CALL (self->mm_call);
|
||||
MMCallState state;
|
||||
@@ -336,7 +335,7 @@ constructed (GObject *object)
|
||||
start_call (CALLS_CALL (self));
|
||||
}
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_mm_call_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
@@ -365,25 +364,23 @@ get_property (GObject *object,
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMCall *self = CALLS_MM_CALL (object);
|
||||
|
||||
g_clear_object (&self->mm_call);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_mm_call_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMCall *self = CALLS_MM_CALL (object);
|
||||
|
||||
g_free (self->disconnect_reason);
|
||||
g_string_free (self->number, TRUE);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_mm_call_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -446,7 +446,6 @@ modem_get_name (MMModem *modem)
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMOrigin *self = CALLS_MM_ORIGIN (object);
|
||||
MmGdbusModemVoice *gdbus_voice;
|
||||
|
||||
@@ -466,33 +465,31 @@ constructed (GObject *object)
|
||||
NULL,
|
||||
(GAsyncReadyCallback) list_calls_cb,
|
||||
self);
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_mm_origin_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMOrigin *self = CALLS_MM_ORIGIN (object);
|
||||
|
||||
remove_calls (self, NULL);
|
||||
g_clear_object (&self->mm_obj);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_mm_origin_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMOrigin *self = CALLS_MM_ORIGIN (object);
|
||||
|
||||
g_hash_table_unref (self->calls);
|
||||
g_free (self->name);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_mm_origin_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -357,7 +357,6 @@ mm_vanished_cb (GDBusConnection *connection,
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMProvider *self = CALLS_MM_PROVIDER (object);
|
||||
|
||||
self->watch_id =
|
||||
@@ -370,7 +369,7 @@ constructed (GObject *object)
|
||||
|
||||
g_debug ("Watching for ModemManager");
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_mm_provider_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
@@ -397,7 +396,6 @@ get_property (GObject *object,
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMProvider *self = CALLS_MM_PROVIDER (object);
|
||||
|
||||
if (self->watch_id)
|
||||
@@ -408,20 +406,19 @@ dispose (GObject *object)
|
||||
|
||||
clear_dbus (self);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_mm_provider_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsMMProvider *self = CALLS_MM_PROVIDER (object);
|
||||
|
||||
g_hash_table_unref (self->origins);
|
||||
g_free (self->status);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_mm_provider_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -280,7 +280,6 @@ disconnect_reason_cb (CallsOfonoCall *self,
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoCall *self = CALLS_OFONO_CALL (object);
|
||||
|
||||
g_return_if_fail (self->voice_call != NULL);
|
||||
@@ -290,33 +289,31 @@ constructed (GObject *object)
|
||||
g_signal_connect_swapped (self->voice_call, "disconnect-reason",
|
||||
G_CALLBACK (disconnect_reason_cb), self);
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_ofono_call_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoCall *self = CALLS_OFONO_CALL (object);
|
||||
|
||||
g_clear_object (&self->voice_call);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_ofono_call_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoCall *self = CALLS_OFONO_CALL (object);
|
||||
|
||||
g_free (self->disconnect_reason);
|
||||
g_free (self->name);
|
||||
g_free (self->number);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_ofono_call_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -448,7 +448,6 @@ voice_new_cb (GDBusConnection *connection,
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoOrigin *self = CALLS_OFONO_ORIGIN (object);
|
||||
GDBusProxy *modem_proxy;
|
||||
gchar *name;
|
||||
@@ -478,28 +477,26 @@ constructed (GObject *object)
|
||||
|
||||
g_clear_object (&self->modem);
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_ofono_origin_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoOrigin *self = CALLS_OFONO_ORIGIN (object);
|
||||
|
||||
remove_calls (self, NULL);
|
||||
g_clear_object (&self->modem);
|
||||
g_clear_object (&self->connection);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_ofono_origin_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoOrigin *self = CALLS_OFONO_ORIGIN (object);
|
||||
|
||||
if (self->tone_queue)
|
||||
@@ -508,7 +505,7 @@ finalize (GObject *object)
|
||||
}
|
||||
g_free (self->name);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_ofono_origin_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -380,7 +380,6 @@ get_modems_cb (GDBOManager *manager,
|
||||
static void
|
||||
constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoProvider *self = CALLS_OFONO_PROVIDER (object);
|
||||
GError *error = NULL;
|
||||
|
||||
@@ -415,33 +414,31 @@ constructed (GObject *object)
|
||||
(GAsyncReadyCallback) get_modems_cb,
|
||||
self);
|
||||
|
||||
parent_class->constructed (object);
|
||||
G_OBJECT_CLASS (calls_ofono_provider_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoProvider *self = CALLS_OFONO_PROVIDER (object);
|
||||
|
||||
g_clear_object (&self->manager);
|
||||
g_clear_object (&self->connection);
|
||||
|
||||
parent_class->dispose (object);
|
||||
G_OBJECT_CLASS (calls_ofono_provider_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
GObjectClass *parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
CallsOfonoProvider *self = CALLS_OFONO_PROVIDER (object);
|
||||
|
||||
g_hash_table_unref (self->origins);
|
||||
g_hash_table_unref (self->modems);
|
||||
|
||||
parent_class->finalize (object);
|
||||
G_OBJECT_CLASS (calls_ofono_provider_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user