From 045b5b03ceb4c08967516f8a61b7477df7daf24f Mon Sep 17 00:00:00 2001 From: Jakub Zawadzki Date: Mon, 23 Jul 2012 20:24:36 +0000 Subject: [PATCH] Fix bug #7520: Byteview related Glib-GObject-Critical msgs during GTK2 Wireshark startup Put generated, with *proper* types version of marshaler (VOID:OBJECT,OBJECT) inside bytes_view.c It was also only blocker of #undef GTK_DISABLE_DEPRECATED, so remove it. XXX generated version of marshaler looks portable, but it'd be best to generate it using glib-genmarshal during compilation. svn path=/trunk/; revision=43947 --- ui/gtk/bytes_view.c | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/ui/gtk/bytes_view.c b/ui/gtk/bytes_view.c index 70391672a8..7c4679ce9a 100644 --- a/ui/gtk/bytes_view.c +++ b/ui/gtk/bytes_view.c @@ -33,8 +33,6 @@ #include "config.h" #endif -#undef GTK_DISABLE_DEPRECATED /* for gtk_marshal_VOID__POINTER_POINTER */ - #include #include "ui/gtk/old-gtk-compat.h" @@ -1124,6 +1122,38 @@ bytes_view_get_property(GObject *object, guint prop_id, GValue *value, GParamSpe break; } } + +#else + +/* bv_VOID__OBJECT_OBJECT() generated by: + * $ echo 'VOID:OBJECT,OBJECT' | glib-genmarshal --prefix=bv --body + * (glib-genmarshal version 2.32.4) + * I *really hope* it's portable over platforms and can be put generated. + */ + +static void +bv_VOID__OBJECT_OBJECT(GClosure *closure, GValue *return_value _U_, guint n_params, const GValue *param_values, gpointer hint _U_, gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT)(gpointer, gpointer, gpointer, gpointer); + + register GMarshalFunc_VOID__OBJECT_OBJECT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail(n_params == 3); + + if (G_CCLOSURE_SWAP_DATA(closure)) { + data1 = closure->data; + data2 = g_value_peek_pointer(param_values + 0); + } else { + data1 = g_value_peek_pointer(param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback); + + callback(data1, g_value_get_object(param_values + 1), g_value_get_object(param_values + 2), data2); +} + #endif static void @@ -1188,8 +1218,7 @@ bytes_view_class_init(BytesViewClass *klass) G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(BytesViewClass, set_scroll_adjustments), NULL, NULL, - gtk_marshal_VOID__POINTER_POINTER, -/* _gtk_marshal_VOID__OBJECT_OBJECT, */ + bv_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);