From: Jonathon Jongsma <jjongsma@xxxxxxxxxx> Forgot to implement hook up this vfunc in the class init function, so we were getting a crash on the main dispatcher. We also need to make sure that we chain up to the parent vfunc. #0 0x00007fffed0478c7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 #1 0x00007fffed04952a in __GI_abort () at abort.c:89 #2 0x00007fffed04046d in __assert_fail_base (fmt=0x7fffed19a1f8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ffff7b8cf28 "dispatcher->priv->messages[message_type].handler", file=file@entry=0x7ffff7b8cede "dispatcher.c", line=line@entry=324, function=function@entry=0x7ffff7b8d210 <__PRETTY_FUNCTION__.16179> "dispatcher_send_message") at assert.c:92 #3 0x00007fffed040522 in __GI___assert_fail (assertion=0x7ffff7b8cf28 "dispatcher->priv->messages[message_type].handler", file=0x7ffff7b8cede "dispatcher.c", line=324, function=0x7ffff7b8d210 <__PRETTY_FUNCTION__.16179> "dispatcher_send_message") at assert.c:101 #4 0x00007ffff7a89367 in dispatcher_send_message (dispatcher=0x55555625f0c0 [MainDispatcher], message_type=2, payload=0x7fffdd1fe5a0) at dispatcher.c:324 #5 0x00007ffff7a8d3da in main_dispatcher_set_mm_time_latency (self=0x55555625f0c0 [MainDispatcher], client=0x5555564d2740, latency=0) at main-dispatcher.c:260 --- server/dispatcher.c | 2 ++ server/main-dispatcher.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/server/dispatcher.c b/server/dispatcher.c index 2c04eb4..cd2f2cb 100644 --- a/server/dispatcher.c +++ b/server/dispatcher.c @@ -121,6 +121,8 @@ static void dispatcher_constructed(GObject *object) Dispatcher *self = DISPATCHER(object); int channels[2]; + G_OBJECT_CLASS(dispatcher_parent_class)->constructed(object); + #ifdef DEBUG_DISPATCHER setup_dummy_signal_handler(); #endif diff --git a/server/main-dispatcher.c b/server/main-dispatcher.c index 6b8ca53..bc0de24 100644 --- a/server/main-dispatcher.c +++ b/server/main-dispatcher.c @@ -104,6 +104,8 @@ main_dispatcher_set_property(GObject *object, } } +static void main_dispatcher_constructed(GObject *object); + static void main_dispatcher_class_init(MainDispatcherClass *klass) { @@ -111,6 +113,7 @@ main_dispatcher_class_init(MainDispatcherClass *klass) g_type_class_add_private(klass, sizeof(MainDispatcherPrivate)); + object_class->constructed = main_dispatcher_constructed; object_class->get_property = main_dispatcher_get_property; object_class->set_property = main_dispatcher_set_property; @@ -297,6 +300,8 @@ MainDispatcher* main_dispatcher_new(RedsState *reds, SpiceCoreInterfaceInternal void main_dispatcher_constructed(GObject *object) { MainDispatcher *self = MAIN_DISPATCHER(object); + + G_OBJECT_CLASS(main_dispatcher_parent_class)->constructed(object); dispatcher_set_opaque(DISPATCHER(self), self); self->priv->core->watch_add(self->priv->core, -- 2.5.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel