diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-07-23 20:24:36 +0000 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-07-23 20:24:36 +0000 |
commit | 045b5b03ceb4c08967516f8a61b7477df7daf24f (patch) | |
tree | c979a9b9d94be4495085538d5658346d625606f9 /ui/gtk/bytes_view.c | |
parent | 713dbd01c911771084ca27f707e2d21b670c38cb (diff) | |
download | wireshark-045b5b03ceb4c08967516f8a61b7477df7daf24f.tar.gz |
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
Diffstat (limited to 'ui/gtk/bytes_view.c')
-rw-r--r-- | ui/gtk/bytes_view.c | 37 |
1 files 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 <gtk/gtk.h> #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); |