From 44cdb20c1023fa984f7df5a61bc55b4c0cc23580 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 31 May 2019 13:11:43 -0700 Subject: [PATCH 1/2] gtk: fix all uses of g_cclosure_marshal_generic This adds specific marshallers for all of the locations where a generic marshaller is being used. It also provides va_marshallers to reduce the chances that we get stack traces from perf going through ffi_call_unix64. --- gtk/gtkactionmuxer.c | 13 +++++++++++-- gtk/gtkeventcontrollerkey.c | 23 +++++++++++++++++++---- gtk/gtkeventcontrollermotion.c | 13 ++++++++++--- gtk/gtkgesture.c | 7 ++++++- gtk/gtkgesturedrag.c | 19 ++++++++++++++++--- gtk/gtkgesturelongpress.c | 7 ++++++- gtk/gtkgesturemultipress.c | 13 +++++++++++-- gtk/gtkgesturepan.c | 7 ++++++- gtk/gtkgesturerotate.c | 6 +++++- gtk/gtkgesturestylus.c | 28 ++++++++++++++++++++++++---- gtk/gtkgestureswipe.c | 7 ++++++- gtk/gtkglarea.c | 12 +++++++++++- gtk/gtkmarshalers.list | 5 +++++ gtk/gtkplacesview.c | 6 +++++- gtk/gtkscrolledwindow.c | 6 ++---- gtk/gtktextview.c | 5 ++++- 16 files changed, 147 insertions(+), 30 deletions(-) diff --git a/gtk/gtkactionmuxer.c b/gtk/gtkactionmuxer.c index df515244ff..40fc0c14c9 100644 --- a/gtk/gtkactionmuxer.c +++ b/gtk/gtkactionmuxer.c @@ -24,6 +24,7 @@ #include "gtkactionobservable.h" #include "gtkactionobserver.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #include @@ -633,8 +634,16 @@ gtk_action_muxer_class_init (GObjectClass *class) class->finalize = gtk_action_muxer_finalize; class->dispose = gtk_action_muxer_dispose; - accel_signal = g_signal_new (I_("primary-accel-changed"), GTK_TYPE_ACTION_MUXER, G_SIGNAL_RUN_LAST, - 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + accel_signal = g_signal_new (I_("primary-accel-changed"), + GTK_TYPE_ACTION_MUXER, + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + _gtk_marshal_VOID__STRING_STRING, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + g_signal_set_va_marshaller (accel_signal, + G_TYPE_FROM_CLASS (class), + _gtk_marshal_VOID__STRING_STRINGv); properties[PROP_PARENT] = g_param_spec_object ("parent", "Parent", "The parent muxer", diff --git a/gtk/gtkeventcontrollerkey.c b/gtk/gtkeventcontrollerkey.c index 90fc0d2d47..a6e949cc8e 100644 --- a/gtk/gtkeventcontrollerkey.c +++ b/gtk/gtkeventcontrollerkey.c @@ -32,6 +32,7 @@ #include "config.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #include "gtkprivate.h" #include "gtkwidgetprivate.h" #include "gtkeventcontrollerprivate.h" @@ -182,8 +183,12 @@ gtk_event_controller_key_class_init (GtkEventControllerKeyClass *klass) g_signal_new (I_("key-pressed"), GTK_TYPE_EVENT_CONTROLLER_KEY, G_SIGNAL_RUN_LAST, - 0, _gtk_boolean_handled_accumulator, NULL, NULL, + 0, _gtk_boolean_handled_accumulator, NULL, + _gtk_marshal_BOOLEAN__UINT_UINT_FLAGS, G_TYPE_BOOLEAN, 3, G_TYPE_UINT, G_TYPE_UINT, GDK_TYPE_MODIFIER_TYPE); + g_signal_set_va_marshaller (signals[KEY_PRESSED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__UINT_UINT_FLAGSv); /** * GtkEventControllerKey::key-released: @@ -200,15 +205,25 @@ gtk_event_controller_key_class_init (GtkEventControllerKeyClass *klass) g_signal_new (I_("key-released"), GTK_TYPE_EVENT_CONTROLLER_KEY, G_SIGNAL_RUN_LAST, - 0, NULL, NULL, NULL, + 0, NULL, NULL, + _gtk_marshal_BOOLEAN__UINT_UINT_FLAGS, G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, GDK_TYPE_MODIFIER_TYPE); + g_signal_set_va_marshaller (signals[KEY_RELEASED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__UINT_UINT_FLAGSv); + signals[MODIFIERS] = g_signal_new (I_("modifiers"), GTK_TYPE_EVENT_CONTROLLER_KEY, G_SIGNAL_RUN_LAST, - 0, NULL, NULL, - g_cclosure_marshal_BOOLEAN__FLAGS, + 0, NULL, + NULL, + _gtk_marshal_BOOLEAN__FLAGS, G_TYPE_BOOLEAN, 1, GDK_TYPE_MODIFIER_TYPE); + g_signal_set_va_marshaller (signals[MODIFIERS], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__FLAGSv); + signals[IM_UPDATE] = g_signal_new (I_("im-update"), GTK_TYPE_EVENT_CONTROLLER_KEY, diff --git a/gtk/gtkeventcontrollermotion.c b/gtk/gtkeventcontrollermotion.c index 867d96826c..cfa757234f 100644 --- a/gtk/gtkeventcontrollermotion.c +++ b/gtk/gtkeventcontrollermotion.c @@ -31,6 +31,7 @@ #include "config.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #include "gtkwidget.h" #include "gtkeventcontrollerprivate.h" #include "gtkeventcontrollermotion.h" @@ -139,8 +140,11 @@ gtk_event_controller_motion_class_init (GtkEventControllerMotionClass *klass) GTK_TYPE_EVENT_CONTROLLER_MOTION, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, - NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[ENTER], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); /** * GtkEventControllerMotion::leave: @@ -153,7 +157,7 @@ gtk_event_controller_motion_class_init (GtkEventControllerMotionClass *klass) GTK_TYPE_EVENT_CONTROLLER_MOTION, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, - NULL, + NULL, G_TYPE_NONE, 0); /** @@ -169,8 +173,11 @@ gtk_event_controller_motion_class_init (GtkEventControllerMotionClass *klass) GTK_TYPE_EVENT_CONTROLLER_MOTION, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, - NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[MOTION], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); } static void diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c index 798c7a29be..051c63e129 100644 --- a/gtk/gtkgesture.c +++ b/gtk/gtkgesture.c @@ -124,6 +124,7 @@ #include "gtkprivate.h" #include "gtkmain.h" #include "gtkintl.h" +#include "gtkmarshalers.h" typedef struct _GtkGesturePrivate GtkGesturePrivate; typedef struct _PointData PointData; @@ -988,9 +989,13 @@ gtk_gesture_class_init (GtkGestureClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureClass, sequence_state_changed), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__BOXED_ENUM, G_TYPE_NONE, 2, GDK_TYPE_EVENT_SEQUENCE, GTK_TYPE_EVENT_SEQUENCE_STATE); + g_signal_set_va_marshaller (signals[SEQUENCE_STATE_CHANGED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__BOXED_ENUMv); } static void diff --git a/gtk/gtkgesturedrag.c b/gtk/gtkgesturedrag.c index 59fdc2aa62..f29f2d6ace 100644 --- a/gtk/gtkgesturedrag.c +++ b/gtk/gtkgesturedrag.c @@ -34,6 +34,7 @@ #include "gtkgesturedrag.h" #include "gtkgesturedragprivate.h" #include "gtkintl.h" +#include "gtkmarshalers.h" typedef struct _GtkGestureDragPrivate GtkGestureDragPrivate; typedef struct _EventData EventData; @@ -154,8 +155,12 @@ gtk_gesture_drag_class_init (GtkGestureDragClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureDragClass, drag_begin), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[DRAG_BEGIN], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); /** * GtkGestureDrag::drag-update: * @gesture: the object which received the signal @@ -171,8 +176,12 @@ gtk_gesture_drag_class_init (GtkGestureDragClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureDragClass, drag_update), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[DRAG_UPDATE], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); /** * GtkGestureDrag::drag-end: * @gesture: the object which received the signal @@ -188,8 +197,12 @@ gtk_gesture_drag_class_init (GtkGestureDragClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureDragClass, drag_end), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[DRAG_END], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); } static void diff --git a/gtk/gtkgesturelongpress.c b/gtk/gtkgesturelongpress.c index 2ae78b486e..dcf664d106 100644 --- a/gtk/gtkgesturelongpress.c +++ b/gtk/gtkgesturelongpress.c @@ -40,6 +40,7 @@ #include "gtkdnd.h" #include "gtkprivate.h" #include "gtkintl.h" +#include "gtkmarshalers.h" typedef struct _GtkGestureLongPressPrivate GtkGestureLongPressPrivate; @@ -302,8 +303,12 @@ gtk_gesture_long_press_class_init (GtkGestureLongPressClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureLongPressClass, pressed), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[PRESSED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); /** * GtkGestureLongPress::cancelled: * @gesture: the object which received the signal diff --git a/gtk/gtkgesturemultipress.c b/gtk/gtkgesturemultipress.c index ef17c1d4ab..18f33f4ab0 100644 --- a/gtk/gtkgesturemultipress.c +++ b/gtk/gtkgesturemultipress.c @@ -40,6 +40,7 @@ #include "gtkgesturemultipressprivate.h" #include "gtkprivate.h" #include "gtkintl.h" +#include "gtkmarshalers.h" typedef struct _GtkGestureMultiPressPrivate GtkGestureMultiPressPrivate; @@ -336,9 +337,13 @@ gtk_gesture_multi_press_class_init (GtkGestureMultiPressClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureMultiPressClass, pressed), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__INT_DOUBLE_DOUBLE, G_TYPE_NONE, 3, G_TYPE_INT, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[PRESSED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv); /** * GtkGestureMultiPress::released: @@ -359,9 +364,13 @@ gtk_gesture_multi_press_class_init (GtkGestureMultiPressClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureMultiPressClass, released), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__INT_DOUBLE_DOUBLE, G_TYPE_NONE, 3, G_TYPE_INT, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[RELEASED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv); /** * GtkGestureMultiPress::stopped: * @gesture: the object which received the signal diff --git a/gtk/gtkgesturepan.c b/gtk/gtkgesturepan.c index cbc34e6e63..54aa107712 100644 --- a/gtk/gtkgesturepan.c +++ b/gtk/gtkgesturepan.c @@ -44,6 +44,7 @@ #include "gtktypebuiltins.h" #include "gtkprivate.h" #include "gtkintl.h" +#include "gtkmarshalers.h" typedef struct _GtkGesturePanPrivate GtkGesturePanPrivate; @@ -256,9 +257,13 @@ gtk_gesture_pan_class_init (GtkGesturePanClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGesturePanClass, pan), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__ENUM_DOUBLE, G_TYPE_NONE, 2, GTK_TYPE_PAN_DIRECTION, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[PAN], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__ENUM_DOUBLEv); } static void diff --git a/gtk/gtkgesturerotate.c b/gtk/gtkgesturerotate.c index 7a1286e961..88f27a8526 100644 --- a/gtk/gtkgesturerotate.c +++ b/gtk/gtkgesturerotate.c @@ -232,8 +232,12 @@ gtk_gesture_rotate_class_init (GtkGestureRotateClass *klass) GTK_TYPE_GESTURE_ROTATE, G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GtkGestureRotateClass, angle_changed), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[ANGLE_CHANGED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); } /** diff --git a/gtk/gtkgesturestylus.c b/gtk/gtkgesturestylus.c index 7eb029f3be..7109e096df 100644 --- a/gtk/gtkgesturestylus.c +++ b/gtk/gtkgesturestylus.c @@ -32,6 +32,7 @@ #include "gtkgesturestylusprivate.h" #include "gtkprivate.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #include "gtkmain.h" G_DEFINE_TYPE (GtkGestureStylus, gtk_gesture_stylus, GTK_TYPE_GESTURE_SINGLE) @@ -99,29 +100,48 @@ gtk_gesture_stylus_class_init (GtkGestureStylusClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureStylusClass, proximity), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[PROXIMITY], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); + signals[DOWN] = g_signal_new (I_("down"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureStylusClass, down), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[DOWN], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); + signals[MOTION] = g_signal_new (I_("motion"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureStylusClass, motion), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[MOTION], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); + signals[UP] = g_signal_new (I_("up"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureStylusClass, up), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[UP], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); } static void diff --git a/gtk/gtkgestureswipe.c b/gtk/gtkgestureswipe.c index 9713226632..bf84eb5a3e 100644 --- a/gtk/gtkgestureswipe.c +++ b/gtk/gtkgestureswipe.c @@ -41,6 +41,7 @@ #include "gtkgestureprivate.h" #include "gtkmarshalers.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #define CAPTURE_THRESHOLD_MS 150 @@ -235,8 +236,12 @@ gtk_gesture_swipe_class_init (GtkGestureSwipeClass *klass) G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGestureSwipeClass, swipe), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[SWIPE], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); } static void diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c index ea383c01a1..9a56443725 100644 --- a/gtk/gtkglarea.c +++ b/gtk/gtkglarea.c @@ -23,6 +23,7 @@ #include "config.h" #include "gtkglarea.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #include "gtkstylecontext.h" #include "gtkmarshalers.h" #include "gtkprivate.h" @@ -913,9 +914,12 @@ gtk_gl_area_class_init (GtkGLAreaClass *klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkGLAreaClass, render), _gtk_boolean_handled_accumulator, NULL, - NULL, + _gtk_marshal_BOOLEAN__OBJECT, G_TYPE_BOOLEAN, 1, GDK_TYPE_GL_CONTEXT); + g_signal_set_va_marshaller (area_signals[RENDER], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__OBJECTv); /** * GtkGLArea::resize: @@ -943,6 +947,9 @@ gtk_gl_area_class_init (GtkGLAreaClass *klass) NULL, NULL, _gtk_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); + g_signal_set_va_marshaller (area_signals[RESIZE], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__INT_INTv); /** * GtkGLArea::create-context: @@ -972,6 +979,9 @@ gtk_gl_area_class_init (GtkGLAreaClass *klass) create_context_accumulator, NULL, _gtk_marshal_OBJECT__VOID, GDK_TYPE_GL_CONTEXT, 0); + g_signal_set_va_marshaller (area_signals[CREATE_CONTEXT], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_OBJECT__VOIDv); } static void diff --git a/gtk/gtkmarshalers.list b/gtk/gtkmarshalers.list index cb6f4fa861..eceacfcd11 100644 --- a/gtk/gtkmarshalers.list +++ b/gtk/gtkmarshalers.list @@ -25,8 +25,10 @@ BOOLEAN:BOXED BOOLEAN:BOXED,BOXED BOOLEAN:ENUM BOOLEAN:ENUM,BOOLEAN +BOOLEAN:ENUM,BOXED,BOXED,BOXED BOOLEAN:ENUM,DOUBLE BOOLEAN:ENUM,INT +BOOLEAN:FLAGS BOOLEAN:OBJECT BOOLEAN:OBJECT,UINT,FLAGS BOOLEAN:OBJECT,INT,INT,UINT @@ -41,6 +43,7 @@ BOOLEAN:INT,INT BOOLEAN:INT,INT,INT BOOLEAN:INT,INT,BOOLEAN,OBJECT BOOLEAN:UINT +BOOLEAN:UINT,UINT,FLAGS BOOLEAN:VOID BOOLEAN:BOOLEAN BOOLEAN:BOOLEAN,BOOLEAN,BOOLEAN @@ -61,6 +64,7 @@ VOID:BOXED,UINT VOID:BOXED,UINT,FLAGS VOID:BOXED,UINT,UINT VOID:ENUM,BOOLEAN +VOID:ENUM,DOUBLE VOID:ENUM,ENUM VOID:ENUM,FLOAT VOID:ENUM,FLOAT,BOOLEAN @@ -70,6 +74,7 @@ VOID:ENUM,INT,INT VOID:ENUM,BOXED VOID:ENUM,STRING VOID:INT,BOOLEAN +VOID:INT,DOUBLE,DOUBLE VOID:INT,INT VOID:INT,INT,BOXED VOID:INT,INT,INT diff --git a/gtk/gtkplacesview.c b/gtk/gtkplacesview.c index 96ddeaedc8..dab7f56f0a 100644 --- a/gtk/gtkplacesview.c +++ b/gtk/gtkplacesview.c @@ -2284,10 +2284,14 @@ gtk_places_view_class_init (GtkPlacesViewClass *klass) G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GtkPlacesViewClass, open_location), - NULL, NULL, NULL, + NULL, NULL, + _gtk_marshal_VOID__OBJECT_FLAGS, G_TYPE_NONE, 2, G_TYPE_OBJECT, GTK_TYPE_PLACES_OPEN_FLAGS); + g_signal_set_va_marshaller (places_view_signals [OPEN_LOCATION], + G_TYPE_FROM_CLASS (object_class), + _gtk_marshal_VOID__OBJECT_FLAGSv); /** * GtkPlacesView::show-error-message: diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index b2dc1d1c79..837e85f1fc 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -851,8 +851,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) g_signal_new (I_("edge-overshot"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, 0, - NULL, NULL, - g_cclosure_marshal_generic, + NULL, NULL, NULL, G_TYPE_NONE, 1, GTK_TYPE_POSITION_TYPE); /** @@ -876,8 +875,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) g_signal_new (I_("edge-reached"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, 0, - NULL, NULL, - g_cclosure_marshal_generic, + NULL, NULL, NULL, G_TYPE_NONE, 1, GTK_TYPE_POSITION_TYPE); binding_set = gtk_binding_set_by_class (class); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 40ba9043c4..c73c8ba710 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -1442,12 +1442,15 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkTextViewClass, extend_selection), _gtk_boolean_handled_accumulator, NULL, - NULL, /* generic marshaller */ + _gtk_marshal_BOOLEAN__ENUM_BOXED_BOXED_BOXED, G_TYPE_BOOLEAN, 4, GTK_TYPE_TEXT_EXTEND_SELECTION, GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE, GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE, GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE); + g_signal_set_va_marshaller (signals[EXTEND_SELECTION], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__ENUM_BOXED_BOXED_BOXEDv); /** * GtkTextView::insert-emoji: From 6033b6457b1cf6c9ce173f9b34d56431ab49256e Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 31 May 2019 15:49:32 -0700 Subject: [PATCH 2/2] va_marshaller: add various va_marshallers We don't need to cover every case with a va_marshaller, but there are a number of them that are useful because they will often only be connected to by a single signal handler. Generally speaking, if I opened into a file to add a va_marshaller, I just set all of them. --- gdk/Makefile.am | 2 + gdk/gdkdisplay.c | 3 ++ gdk/gdkdisplaymanager.c | 3 ++ gdk/gdkwindow.c | 15 ++++++++ gtk/gtkcellrenderer.c | 3 ++ gtk/gtkcellrenderercombo.c | 3 ++ gtk/gtkcellrenderertext.c | 3 ++ gtk/gtkeditable.c | 69 +++++++++++++++++++++------------- gtk/gtkeventcontrollerscroll.c | 10 ++++- gtk/gtkflowbox.c | 3 ++ gtk/gtkiconview.c | 6 +++ gtk/gtkimcontext.c | 8 +++- gtk/gtklistbox.c | 3 ++ gtk/gtkmarshalers.list | 1 + gtk/gtknotebook.c | 27 +++++++++++++ gtk/gtkoverlay.c | 3 ++ gtk/gtkswitch.c | 3 ++ gtk/gtktexttagtable.c | 3 ++ gtk/gtktextview.c | 9 +++++ gtk/gtktreemodel.c | 12 ++++++ gtk/gtktreeview.c | 39 +++++++++++++++++++ gtk/gtkwidget.c | 45 ++++++++++++++++++++++ 22 files changed, 244 insertions(+), 29 deletions(-) diff --git a/gdk/Makefile.am b/gdk/Makefile.am index 74b9d0bbf4..b1083fe837 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -449,6 +449,7 @@ gdkenumtypes.c: $(gdk_h_sources) gdkenumtypes.c.template gdkmarshalers.h: gdkmarshalers.list $(AM_V_GEN) $(GLIB_GENMARSHAL) \ --prefix=_gdk_marshal \ + --valist-marshallers \ --header \ $(srcdir)/gdkmarshalers.list > gdkmarshalers-h.tmp \ && mv gdkmarshalers-h.tmp gdkmarshalers.h \ @@ -456,6 +457,7 @@ gdkmarshalers.h: gdkmarshalers.list gdkmarshalers.c: gdkmarshalers.list $(AM_V_GEN) $(GLIB_GENMARSHAL) \ --prefix=_gdk_marshal \ + --valist-marshallers \ --body \ $(srcdir)/gdkmarshalers.list > gdkmarshalers-c.tmp \ && mv gdkmarshalers-c.tmp gdkmarshalers.c \ diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 5c34a8c51f..240c99fa43 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -196,6 +196,9 @@ gdk_display_class_init (GdkDisplayClass *class) G_TYPE_NONE, 1, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (signals[CLOSED], + G_OBJECT_CLASS_TYPE (object_class), + _gdk_marshal_VOID__BOOLEANv); /** * GdkDisplay::seat-added: diff --git a/gdk/gdkdisplaymanager.c b/gdk/gdkdisplaymanager.c index bbd76805ef..d87ed133ae 100644 --- a/gdk/gdkdisplaymanager.c +++ b/gdk/gdkdisplaymanager.c @@ -162,6 +162,9 @@ gdk_display_manager_class_init (GdkDisplayManagerClass *klass) G_TYPE_NONE, 1, GDK_TYPE_DISPLAY); + g_signal_set_va_marshaller (signals[DISPLAY_OPENED], + G_TYPE_FROM_CLASS (klass), + _gdk_marshal_VOID__OBJECTv); g_object_class_install_property (object_class, PROP_DEFAULT_DISPLAY, diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 6601a32c9c..838abcf4c7 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -382,6 +382,9 @@ gdk_window_class_init (GdkWindowClass *klass) 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[PICK_EMBEDDED_CHILD], + G_OBJECT_CLASS_TYPE (object_class), + _gdk_marshal_OBJECT__DOUBLE_DOUBLEv); /** * GdkWindow::to-embedder: @@ -413,6 +416,9 @@ gdk_window_class_init (GdkWindowClass *klass) G_TYPE_DOUBLE, G_TYPE_POINTER, G_TYPE_POINTER); + g_signal_set_va_marshaller (signals[TO_EMBEDDER], + G_OBJECT_CLASS_TYPE (object_class), + _gdk_marshal_VOID__DOUBLE_DOUBLE_POINTER_POINTERv); /** * GdkWindow::from-embedder: @@ -444,6 +450,9 @@ gdk_window_class_init (GdkWindowClass *klass) G_TYPE_DOUBLE, G_TYPE_POINTER, G_TYPE_POINTER); + g_signal_set_va_marshaller (signals[FROM_EMBEDDER], + G_OBJECT_CLASS_TYPE (object_class), + _gdk_marshal_VOID__DOUBLE_DOUBLE_POINTER_POINTERv); /** * GdkWindow::create-surface: @@ -477,6 +486,9 @@ gdk_window_class_init (GdkWindowClass *klass) 2, G_TYPE_INT, G_TYPE_INT); + g_signal_set_va_marshaller (signals[CREATE_SURFACE], + G_OBJECT_CLASS_TYPE (object_class), + _gdk_marshal_BOXED__INT_INTv); /** * GdkWindow::moved-to-rect: @@ -517,6 +529,9 @@ gdk_window_class_init (GdkWindowClass *klass) G_TYPE_POINTER, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (signals[MOVED_TO_RECT], + G_OBJECT_CLASS_TYPE (object_class), + _gdk_marshal_VOID__POINTER_POINTER_BOOLEAN_BOOLEANv); } static void diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c index 085b25b4ed..d10cd09e10 100644 --- a/gtk/gtkcellrenderer.c +++ b/gtk/gtkcellrenderer.c @@ -282,6 +282,9 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class) G_TYPE_NONE, 2, GTK_TYPE_CELL_EDITABLE, G_TYPE_STRING); + g_signal_set_va_marshaller (cell_renderer_signals[EDITING_STARTED], + G_TYPE_FROM_CLASS (object_class), + _gtk_marshal_VOID__OBJECT_STRINGv); g_object_class_install_property (object_class, PROP_MODE, diff --git a/gtk/gtkcellrenderercombo.c b/gtk/gtkcellrenderercombo.c index 78eb81bdad..e3b1ca6afd 100644 --- a/gtk/gtkcellrenderercombo.c +++ b/gtk/gtkcellrenderercombo.c @@ -204,6 +204,9 @@ gtk_cell_renderer_combo_class_init (GtkCellRendererComboClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, GTK_TYPE_TREE_ITER); + g_signal_set_va_marshaller (cell_renderer_combo_signals[CHANGED], + G_TYPE_FROM_CLASS (object_class), + _gtk_marshal_VOID__STRING_BOXEDv); } static void diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index bd8b902dea..32eb15544c 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -689,6 +689,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + g_signal_set_va_marshaller (text_cell_renderer_signals [EDITED], + G_OBJECT_CLASS_TYPE (object_class), + _gtk_marshal_VOID__STRING_STRINGv); gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE); } diff --git a/gtk/gtkeditable.c b/gtk/gtkeditable.c index 50d0df44ba..078f3f0ab7 100644 --- a/gtk/gtkeditable.c +++ b/gtk/gtkeditable.c @@ -74,6 +74,14 @@ static void gtk_editable_base_init (gpointer g_class); +enum { + CHANGED, + DELETE_TEXT, + INSERT_TEXT, + N_SIGNALS +}; + +static guint signals[N_SIGNALS]; GType gtk_editable_get_type (void) @@ -122,16 +130,20 @@ gtk_editable_base_init (gpointer g_class) * is possible to modify the inserted text, or prevent * it from being inserted entirely. */ - g_signal_new (I_("insert-text"), - GTK_TYPE_EDITABLE, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkEditableInterface, insert_text), - NULL, NULL, - _gtk_marshal_VOID__STRING_INT_POINTER, - G_TYPE_NONE, 3, - G_TYPE_STRING, - G_TYPE_INT, - G_TYPE_POINTER); + signals[INSERT_TEXT] = + g_signal_new (I_("insert-text"), + GTK_TYPE_EDITABLE, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkEditableInterface, insert_text), + NULL, NULL, + _gtk_marshal_VOID__STRING_INT_POINTER, + G_TYPE_NONE, 3, + G_TYPE_STRING, + G_TYPE_INT, + G_TYPE_POINTER); + g_signal_set_va_marshaller (signals[INSERT_TEXT], + G_TYPE_FROM_CLASS (g_class), + _gtk_marshal_VOID__STRING_INT_POINTERv); /** * GtkEditable::delete-text: @@ -149,15 +161,19 @@ gtk_editable_base_init (gpointer g_class) * and @end_pos parameters are interpreted as for * gtk_editable_delete_text(). */ - g_signal_new (I_("delete-text"), - GTK_TYPE_EDITABLE, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkEditableInterface, delete_text), - NULL, NULL, - _gtk_marshal_VOID__INT_INT, - G_TYPE_NONE, 2, - G_TYPE_INT, - G_TYPE_INT); + signals[DELETE_TEXT] = + g_signal_new (I_("delete-text"), + GTK_TYPE_EDITABLE, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkEditableInterface, delete_text), + NULL, NULL, + _gtk_marshal_VOID__INT_INT, + G_TYPE_NONE, 2, + G_TYPE_INT, + G_TYPE_INT); + g_signal_set_va_marshaller (signals[DELETE_TEXT], + G_TYPE_FROM_CLASS (g_class), + _gtk_marshal_VOID__INT_INTv); /** * GtkEditable::changed: * @editable: the object which received the signal @@ -171,13 +187,14 @@ gtk_editable_base_init (gpointer g_class) * the new content, and may cause multiple ::notify::text signals * to be emitted). */ - g_signal_new (I_("changed"), - GTK_TYPE_EDITABLE, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkEditableInterface, changed), - NULL, NULL, - NULL, - G_TYPE_NONE, 0); + signals[CHANGED] = + g_signal_new (I_("changed"), + GTK_TYPE_EDITABLE, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkEditableInterface, changed), + NULL, NULL, + NULL, + G_TYPE_NONE, 0); initialized = TRUE; } diff --git a/gtk/gtkeventcontrollerscroll.c b/gtk/gtkeventcontrollerscroll.c index a8dfd297df..91831f404f 100644 --- a/gtk/gtkeventcontrollerscroll.c +++ b/gtk/gtkeventcontrollerscroll.c @@ -405,8 +405,11 @@ gtk_event_controller_scroll_class_init (GtkEventControllerScrollClass *klass) GTK_TYPE_EVENT_CONTROLLER_SCROLL, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, - _gtk_marshal_VOID__DOUBLE_DOUBLE, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[SCROLL], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); /** * GtkEventControllerScroll::scroll-end: * @controller: The object that received the signal @@ -438,8 +441,11 @@ gtk_event_controller_scroll_class_init (GtkEventControllerScrollClass *klass) GTK_TYPE_EVENT_CONTROLLER_SCROLL, G_SIGNAL_RUN_FIRST, 0, NULL, NULL, - _gtk_marshal_VOID__DOUBLE_DOUBLE, + _gtk_marshal_VOID__DOUBLE_DOUBLE, G_TYPE_NONE, 2, G_TYPE_DOUBLE, G_TYPE_DOUBLE); + g_signal_set_va_marshaller (signals[DECELERATE], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__DOUBLE_DOUBLEv); g_object_class_install_properties (object_class, N_PROPS, pspecs); } diff --git a/gtk/gtkflowbox.c b/gtk/gtkflowbox.c index 8a884ac685..5a797f21e9 100644 --- a/gtk/gtkflowbox.c +++ b/gtk/gtkflowbox.c @@ -4012,6 +4012,9 @@ gtk_flow_box_class_init (GtkFlowBoxClass *class) _gtk_marshal_BOOLEAN__ENUM_INT, G_TYPE_BOOLEAN, 2, GTK_TYPE_MOVEMENT_STEP, G_TYPE_INT); + g_signal_set_va_marshaller (signals[MOVE_CURSOR], + G_TYPE_FROM_CLASS (class), + _gtk_marshal_BOOLEAN__ENUM_INTv); /** * GtkFlowBox::select-all: * @box: the #GtkFlowBox on which the signal is emitted diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 866c745320..00084b4998 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -859,6 +859,9 @@ gtk_icon_view_class_init (GtkIconViewClass *klass) NULL, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (icon_view_signals[ACTIVATE_CURSOR_ITEM], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__VOIDv); /** * GtkIconView::move-cursor: @@ -891,6 +894,9 @@ gtk_icon_view_class_init (GtkIconViewClass *klass) G_TYPE_BOOLEAN, 2, GTK_TYPE_MOVEMENT_STEP, G_TYPE_INT); + g_signal_set_va_marshaller (icon_view_signals[MOVE_CURSOR], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__ENUM_INTv); /* Key bindings */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_a, GDK_CONTROL_MASK, diff --git a/gtk/gtkimcontext.c b/gtk/gtkimcontext.c index 5ca199f1d1..0a606d33f8 100644 --- a/gtk/gtkimcontext.c +++ b/gtk/gtkimcontext.c @@ -302,6 +302,9 @@ gtk_im_context_class_init (GtkIMContextClass *klass) _gtk_boolean_handled_accumulator, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (im_context_signals[RETRIEVE_SURROUNDING], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__VOIDv); /** * GtkIMContext::delete-surrounding: * @context: the object on which the signal is emitted @@ -324,7 +327,10 @@ gtk_im_context_class_init (GtkIMContextClass *klass) _gtk_marshal_BOOLEAN__INT_INT, G_TYPE_BOOLEAN, 2, G_TYPE_INT, - G_TYPE_INT); + G_TYPE_INT); + g_signal_set_va_marshaller (im_context_signals[DELETE_SURROUNDING], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__INT_INTv); properties[PROP_INPUT_PURPOSE] = g_param_spec_enum ("input-purpose", diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c index c3df19b169..639d36b7dc 100644 --- a/gtk/gtklistbox.c +++ b/gtk/gtklistbox.c @@ -615,6 +615,9 @@ gtk_list_box_class_init (GtkListBoxClass *klass) _gtk_marshal_VOID__ENUM_INT, G_TYPE_NONE, 2, GTK_TYPE_MOVEMENT_STEP, G_TYPE_INT); + g_signal_set_va_marshaller (signals[MOVE_CURSOR], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__ENUM_INTv); widget_class->activate_signal = signals[ACTIVATE_CURSOR_ROW]; diff --git a/gtk/gtkmarshalers.list b/gtk/gtkmarshalers.list index eceacfcd11..54dd71f205 100644 --- a/gtk/gtkmarshalers.list +++ b/gtk/gtkmarshalers.list @@ -58,6 +58,7 @@ VOID:DOUBLE,DOUBLE VOID:BOOLEAN,BOOLEAN,BOOLEAN VOID:BOXED,BOXED VOID:BOXED,BOXED,POINTER +VOID:BOXED,ENUM VOID:BOXED,OBJECT VOID:BOXED,STRING,INT VOID:BOXED,UINT diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 51d9f5b65c..e07d1e184c 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -1049,6 +1049,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) G_TYPE_NONE, 2, GTK_TYPE_WIDGET, G_TYPE_UINT); + g_signal_set_va_marshaller (notebook_signals[SWITCH_PAGE], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_VOID__OBJECT_UINTv); notebook_signals[FOCUS_TAB] = g_signal_new (I_("focus-tab"), G_TYPE_FROM_CLASS (gobject_class), @@ -1058,6 +1061,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) _gtk_marshal_BOOLEAN__ENUM, G_TYPE_BOOLEAN, 1, GTK_TYPE_NOTEBOOK_TAB); + g_signal_set_va_marshaller (notebook_signals[FOCUS_TAB], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__ENUMv); notebook_signals[SELECT_PAGE] = g_signal_new (I_("select-page"), G_TYPE_FROM_CLASS (gobject_class), @@ -1067,6 +1073,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) _gtk_marshal_BOOLEAN__BOOLEAN, G_TYPE_BOOLEAN, 1, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (notebook_signals[SELECT_PAGE], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__BOOLEANv); notebook_signals[CHANGE_CURRENT_PAGE] = g_signal_new (I_("change-current-page"), G_TYPE_FROM_CLASS (gobject_class), @@ -1076,6 +1085,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) _gtk_marshal_BOOLEAN__INT, G_TYPE_BOOLEAN, 1, G_TYPE_INT); + g_signal_set_va_marshaller (notebook_signals[CHANGE_CURRENT_PAGE], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__INTv); notebook_signals[MOVE_FOCUS_OUT] = g_signal_new (I_("move-focus-out"), G_TYPE_FROM_CLASS (gobject_class), @@ -1095,6 +1107,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) G_TYPE_BOOLEAN, 2, GTK_TYPE_DIRECTION_TYPE, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (notebook_signals[REORDER_TAB], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__ENUM_BOOLEANv); /** * GtkNotebook::page-reordered: * @notebook: the #GtkNotebook @@ -1116,6 +1131,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) G_TYPE_NONE, 2, GTK_TYPE_WIDGET, G_TYPE_UINT); + g_signal_set_va_marshaller (notebook_signals[PAGE_REORDERED], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_VOID__OBJECT_UINTv); /** * GtkNotebook::page-removed: * @notebook: the #GtkNotebook @@ -1137,6 +1155,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) G_TYPE_NONE, 2, GTK_TYPE_WIDGET, G_TYPE_UINT); + g_signal_set_va_marshaller (notebook_signals[PAGE_REMOVED], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_VOID__OBJECT_UINTv); /** * GtkNotebook::page-added: * @notebook: the #GtkNotebook @@ -1158,6 +1179,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) G_TYPE_NONE, 2, GTK_TYPE_WIDGET, G_TYPE_UINT); + g_signal_set_va_marshaller (notebook_signals[PAGE_ADDED], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_VOID__OBJECT_UINTv); /** * GtkNotebook::create-window: @@ -1189,6 +1213,9 @@ gtk_notebook_class_init (GtkNotebookClass *class) _gtk_marshal_OBJECT__OBJECT_INT_INT, GTK_TYPE_NOTEBOOK, 3, GTK_TYPE_WIDGET, G_TYPE_INT, G_TYPE_INT); + g_signal_set_va_marshaller (notebook_signals[CREATE_WINDOW], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_OBJECT__OBJECT_INT_INTv); binding_set = gtk_binding_set_by_class (class); gtk_binding_entry_add_signal (binding_set, diff --git a/gtk/gtkoverlay.c b/gtk/gtkoverlay.c index 84128b5d51..be0788dfc6 100644 --- a/gtk/gtkoverlay.c +++ b/gtk/gtkoverlay.c @@ -827,6 +827,9 @@ gtk_overlay_class_init (GtkOverlayClass *klass) G_TYPE_BOOLEAN, 2, GTK_TYPE_WIDGET, GDK_TYPE_RECTANGLE | G_SIGNAL_TYPE_STATIC_SCOPE); + g_signal_set_va_marshaller (signals[GET_CHILD_POSITION], + G_TYPE_FROM_CLASS (object_class), + _gtk_marshal_BOOLEAN__OBJECT_BOXEDv); gtk_widget_class_set_css_name (widget_class, "overlay"); } diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c index a26c97bc28..829bbb38e4 100644 --- a/gtk/gtkswitch.c +++ b/gtk/gtkswitch.c @@ -997,6 +997,9 @@ gtk_switch_class_init (GtkSwitchClass *klass) _gtk_marshal_BOOLEAN__BOOLEAN, G_TYPE_BOOLEAN, 1, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (signals[STATE_SET], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__BOOLEANv); g_object_class_override_property (gobject_class, PROP_ACTION_NAME, "action-name"); g_object_class_override_property (gobject_class, PROP_ACTION_TARGET, "action-target"); diff --git a/gtk/gtktexttagtable.c b/gtk/gtktexttagtable.c index 7c4731c635..11e4c7d809 100644 --- a/gtk/gtktexttagtable.c +++ b/gtk/gtktexttagtable.c @@ -116,6 +116,9 @@ gtk_text_tag_table_class_init (GtkTextTagTableClass *klass) 2, GTK_TYPE_TEXT_TAG, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (signals[TAG_CHANGED], + G_OBJECT_CLASS_TYPE (object_class), + _gtk_marshal_VOID__OBJECT_BOOLEANv); /** * GtkTextTagTable::tag-added: diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index c73c8ba710..2a215309c4 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -1126,6 +1126,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS GTK_TYPE_MOVEMENT_STEP, G_TYPE_INT, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (signals[MOVE_CURSOR], + G_OBJECT_CLASS_TYPE (gobject_class), + _gtk_marshal_VOID__ENUM_INT_BOOLEANv); /** * GtkTextView::move-viewport: @@ -1151,6 +1154,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GTK_TYPE_SCROLL_STEP, G_TYPE_INT); + g_signal_set_va_marshaller (signals[MOVE_VIEWPORT], + G_OBJECT_CLASS_TYPE (gobject_class), + _gtk_marshal_VOID__ENUM_INTv); /** * GtkTextView::set-anchor: @@ -1224,6 +1230,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GTK_TYPE_DELETE_TYPE, G_TYPE_INT); + g_signal_set_va_marshaller (signals[DELETE_FROM_CURSOR], + G_OBJECT_CLASS_TYPE (gobject_class), + _gtk_marshal_VOID__ENUM_INTv); /** * GtkTextView::backspace: diff --git a/gtk/gtktreemodel.c b/gtk/gtktreemodel.c index 303a91106f..82a501e415 100644 --- a/gtk/gtktreemodel.c +++ b/gtk/gtktreemodel.c @@ -365,6 +365,9 @@ gtk_tree_model_base_init (gpointer g_class) G_TYPE_NONE, 2, GTK_TYPE_TREE_PATH | G_SIGNAL_TYPE_STATIC_SCOPE, GTK_TYPE_TREE_ITER); + g_signal_set_va_marshaller (tree_model_signals[ROW_CHANGED], + G_TYPE_FROM_CLASS (g_class), + _gtk_marshal_VOID__BOXED_BOXEDv); /* We need to get notification about structure changes * to update row references., so instead of using the @@ -403,6 +406,9 @@ gtk_tree_model_base_init (gpointer g_class) _gtk_marshal_VOID__BOXED_BOXED, G_TYPE_NONE, 2, row_inserted_params); + g_signal_set_va_marshaller (tree_model_signals[ROW_INSERTED], + G_TYPE_FROM_CLASS (g_class), + _gtk_marshal_VOID__BOXED_BOXEDv); /** * GtkTreeModel::row-has-child-toggled: @@ -423,6 +429,9 @@ gtk_tree_model_base_init (gpointer g_class) G_TYPE_NONE, 2, GTK_TYPE_TREE_PATH | G_SIGNAL_TYPE_STATIC_SCOPE, GTK_TYPE_TREE_ITER); + g_signal_set_va_marshaller (tree_model_signals[ROW_HAS_CHILD_TOGGLED], + G_TYPE_FROM_CLASS (g_class), + _gtk_marshal_VOID__BOXED_BOXEDv); /** * GtkTreeModel::row-deleted: @@ -479,6 +488,9 @@ gtk_tree_model_base_init (gpointer g_class) _gtk_marshal_VOID__BOXED_BOXED_POINTER, G_TYPE_NONE, 3, rows_reordered_params); + g_signal_set_va_marshaller (tree_model_signals[ROWS_REORDERED], + G_TYPE_FROM_CLASS (g_class), + _gtk_marshal_VOID__BOXED_BOXED_POINTERv); initialized = TRUE; } } diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index d673356fe2..1459c983ef 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -1333,6 +1333,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GTK_TYPE_TREE_PATH, GTK_TYPE_TREE_VIEW_COLUMN); + g_signal_set_va_marshaller (tree_view_signals[ROW_ACTIVATED], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_VOID__BOXED_OBJECTv); /** * GtkTreeView::test-expand-row: @@ -1355,6 +1358,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_BOOLEAN, 2, GTK_TYPE_TREE_ITER, GTK_TYPE_TREE_PATH); + g_signal_set_va_marshaller (tree_view_signals[TEST_EXPAND_ROW], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__BOXED_BOXEDv); /** * GtkTreeView::test-collapse-row: @@ -1377,6 +1383,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_BOOLEAN, 2, GTK_TYPE_TREE_ITER, GTK_TYPE_TREE_PATH); + g_signal_set_va_marshaller (tree_view_signals[TEST_COLLAPSE_ROW], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__BOXED_BOXEDv); /** * GtkTreeView::row-expanded: @@ -1396,6 +1405,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GTK_TYPE_TREE_ITER, GTK_TYPE_TREE_PATH); + g_signal_set_va_marshaller (tree_view_signals[ROW_EXPANDED], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_VOID__BOXED_BOXEDv); /** * GtkTreeView::row-collapsed: @@ -1415,6 +1427,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GTK_TYPE_TREE_ITER, GTK_TYPE_TREE_PATH); + g_signal_set_va_marshaller (tree_view_signals[ROW_COLLAPSED], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_VOID__BOXED_BOXEDv); /** * GtkTreeView::columns-changed: @@ -1481,6 +1496,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_BOOLEAN, 2, GTK_TYPE_MOVEMENT_STEP, G_TYPE_INT); + g_signal_set_va_marshaller (tree_view_signals[MOVE_CURSOR], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__ENUM_INTv); tree_view_signals[SELECT_ALL] = g_signal_new (I_("select-all"), @@ -1490,6 +1508,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS NULL, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (tree_view_signals[SELECT_ALL], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__VOIDv); tree_view_signals[UNSELECT_ALL] = g_signal_new (I_("unselect-all"), @@ -1499,6 +1520,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS NULL, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (tree_view_signals[UNSELECT_ALL], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__VOIDv); tree_view_signals[SELECT_CURSOR_ROW] = g_signal_new (I_("select-cursor-row"), @@ -1509,6 +1533,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_marshal_BOOLEAN__BOOLEAN, G_TYPE_BOOLEAN, 1, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (tree_view_signals[SELECT_CURSOR_ROW], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__BOOLEANv); tree_view_signals[TOGGLE_CURSOR_ROW] = g_signal_new (I_("toggle-cursor-row"), @@ -1518,6 +1545,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS NULL, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (tree_view_signals[TOGGLE_CURSOR_ROW], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__VOIDv); tree_view_signals[EXPAND_COLLAPSE_CURSOR_ROW] = g_signal_new (I_("expand-collapse-cursor-row"), @@ -1530,6 +1560,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (tree_view_signals[EXPAND_COLLAPSE_CURSOR_ROW], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__BOOLEAN_BOOLEAN_BOOLEANv); tree_view_signals[SELECT_CURSOR_PARENT] = g_signal_new (I_("select-cursor-parent"), @@ -1539,6 +1572,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS NULL, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (tree_view_signals[SELECT_CURSOR_PARENT], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__VOIDv); tree_view_signals[START_INTERACTIVE_SEARCH] = g_signal_new (I_("start-interactive-search"), @@ -1548,6 +1584,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS NULL, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (tree_view_signals[START_INTERACTIVE_SEARCH], + G_TYPE_FROM_CLASS (o_class), + _gtk_marshal_BOOLEAN__VOIDv); /* Key bindings */ gtk_tree_view_add_move_binding (binding_set, GDK_KEY_Up, 0, TRUE, diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 39b8c1b426..2848d757b5 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2035,6 +2035,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_marshal_BOOLEAN__BOOLEAN, G_TYPE_BOOLEAN, 1, G_TYPE_BOOLEAN); + g_signal_set_va_marshaller (widget_signals[MNEMONIC_ACTIVATE], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__BOOLEANv); /** * GtkWidget::grab-focus: @@ -2065,6 +2068,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_marshal_BOOLEAN__ENUM, G_TYPE_BOOLEAN, 1, GTK_TYPE_DIRECTION_TYPE); + g_signal_set_va_marshaller (widget_signals[FOCUS], + G_TYPE_FROM_CLASS (gobject_class), + _gtk_marshal_BOOLEAN__ENUMv); /** * GtkWidget::move-focus: @@ -2105,6 +2111,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_marshal_BOOLEAN__ENUM, G_TYPE_BOOLEAN, 1, GTK_TYPE_DIRECTION_TYPE); + g_signal_set_va_marshaller (widget_signals[KEYNAV_FAILED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__ENUMv); /** * GtkWidget::event: @@ -2718,6 +2727,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[SELECTION_RECEIVED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__BOXED_UINTv); /** * GtkWidget::selection-get: @@ -2737,6 +2749,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_UINT, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[SELECTION_GET], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__BOXED_UINT_UINTv); /** * GtkWidget::proximity-in-event: @@ -2816,6 +2831,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_NONE, 2, GDK_TYPE_DRAG_CONTEXT, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[DRAG_LEAVE], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__OBJECT_UINTv); /** * GtkWidget::drag-begin: @@ -2905,6 +2923,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_BOOLEAN, 2, GDK_TYPE_DRAG_CONTEXT, GTK_TYPE_DRAG_RESULT); + g_signal_set_va_marshaller (widget_signals[DRAG_FAILED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__OBJECT_ENUMv); /** * GtkWidget::drag-motion: @@ -3015,6 +3036,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_INT, G_TYPE_INT, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[DRAG_MOTION], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__OBJECT_INT_INT_UINTv); /** * GtkWidget::drag-drop: @@ -3049,6 +3073,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_INT, G_TYPE_INT, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[DRAG_DROP], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__OBJECT_INT_INT_UINTv); /** * GtkWidget::drag-data-get: @@ -3077,6 +3104,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_UINT, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[DRAG_DATA_GET], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__OBJECT_BOXED_UINT_UINTv); /** * GtkWidget::drag-data-received: @@ -3164,6 +3194,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_UINT, G_TYPE_UINT); + g_signal_set_va_marshaller (widget_signals[DRAG_DATA_RECEIVED], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_VOID__OBJECT_INT_INT_BOXED_UINT_UINTv); /** * GtkWidget::visibility-notify-event: @@ -3194,6 +3227,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_marshal_BOOLEAN__BOXED, G_TYPE_BOOLEAN, 1, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE); + g_signal_set_va_marshaller (widget_signals[VISIBILITY_NOTIFY_EVENT], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__BOXEDv); /** * GtkWidget::window-state-event: @@ -3317,6 +3353,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS G_TYPE_INT, G_TYPE_BOOLEAN, GTK_TYPE_TOOLTIP); + g_signal_set_va_marshaller (widget_signals[QUERY_TOOLTIP], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__INT_INT_BOOLEAN_OBJECTv); /** * GtkWidget::popup-menu: @@ -3340,6 +3379,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_boolean_handled_accumulator, NULL, _gtk_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + g_signal_set_va_marshaller (widget_signals[POPUP_MENU], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__VOIDv); /** * GtkWidget::show-help: @@ -3358,6 +3400,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS _gtk_marshal_BOOLEAN__ENUM, G_TYPE_BOOLEAN, 1, GTK_TYPE_WIDGET_HELP_TYPE); + g_signal_set_va_marshaller (widget_signals[SHOW_HELP], + G_TYPE_FROM_CLASS (klass), + _gtk_marshal_BOOLEAN__ENUMv); /** * GtkWidget::accel-closures-changed: