[gtk/wip/chergert/marshalling-gtk4] gtk: fix all uses of g_cclosure_marshal_generic



commit 41e373f10cd727a9d87ca23ee5f72086451074e9
Author: Christian Hergert <chergert redhat com>
Date:   Sun Jun 2 14:07:27 2019 -0700

    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.
    
    This is forward ported from gtk-3-24.
    
    # Conflicts:
    #       gtk/gtkeventcontrollerkey.c
    #       gtk/gtkeventcontrollermotion.c
    #       gtk/gtkgesture.c
    #       gtk/gtkgesturemultipress.c

 gtk/gtkactionmuxer.c           | 13 +++++++++++--
 gtk/gtkeventcontrollerkey.c    | 21 +++++++++++++++++----
 gtk/gtkeventcontrollermotion.c | 16 +++++++++++++---
 gtk/gtkgesture.c               |  7 ++++++-
 gtk/gtkgestureclick.c          | 19 ++++++++++++++++---
 gtk/gtkgesturedrag.c           | 19 ++++++++++++++++---
 gtk/gtkgesturelongpress.c      |  7 ++++++-
 gtk/gtkgesturepan.c            |  7 ++++++-
 gtk/gtkgesturerotate.c         |  6 +++++-
 gtk/gtkgesturestylus.c         | 28 ++++++++++++++++++++++++----
 gtk/gtkgestureswipe.c          |  7 ++++++-
 gtk/gtkglarea.c                | 12 +++++++++++-
 gtk/gtkmarshalers.list         | 13 +++++++++++--
 gtk/gtkplacesview.c            |  6 +++++-
 gtk/gtkscrolledwindow.c        |  6 ++----
 gtk/gtktextview.c              |  5 ++++-
 16 files changed, 159 insertions(+), 33 deletions(-)
---
diff --git a/gtk/gtkactionmuxer.c b/gtk/gtkactionmuxer.c
index 06fe0ed0cf..126c94aa80 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 <string.h>
 
@@ -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 0ffb4f3eba..fd209ea1df 100644
--- a/gtk/gtkeventcontrollerkey.c
+++ b/gtk/gtkeventcontrollerkey.c
@@ -30,6 +30,7 @@
 #include "config.h"
 
 #include "gtkintl.h"
+#include "gtkmarshalers.h"
 #include "gtkprivate.h"
 #include "gtkwidgetprivate.h"
 #include "gtkeventcontrollerprivate.h"
@@ -304,8 +305,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:
@@ -320,8 +325,12 @@ 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_VOID__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_VOID__UINT_UINT_FLAGSv);
 
   /**
    * GtkEventControllerKey::modifiers:
@@ -337,9 +346,13 @@ gtk_event_controller_key_class_init (GtkEventControllerKeyClass *klass)
     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);
 
   /**
    * GtkEventControllerKey::im-update:
diff --git a/gtk/gtkeventcontrollermotion.c b/gtk/gtkeventcontrollermotion.c
index dcf419c337..9ba9bdd627 100644
--- a/gtk/gtkeventcontrollermotion.c
+++ b/gtk/gtkeventcontrollermotion.c
@@ -31,6 +31,7 @@
 #include "gtkintl.h"
 #include "gtkprivate.h"
 #include "gtkwidgetprivate.h"
+#include "gtkmarshalers.h"
 #include "gtkeventcontrollerprivate.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtktypebuiltins.h"
@@ -256,13 +257,16 @@ 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_ENUM_ENUM,
                   G_TYPE_NONE,
                   4,
                   G_TYPE_DOUBLE,
                   G_TYPE_DOUBLE,
                   GDK_TYPE_CROSSING_MODE,
                   GDK_TYPE_NOTIFY_TYPE);
+  g_signal_set_va_marshaller (signals[ENTER],
+                              G_TYPE_FROM_CLASS (klass),
+                              _gtk_marshal_VOID__DOUBLE_DOUBLE_ENUM_ENUMv);
 
   /**
    * GtkEventControllerMotion::leave:
@@ -277,11 +281,14 @@ gtk_event_controller_motion_class_init (GtkEventControllerMotionClass *klass)
                   GTK_TYPE_EVENT_CONTROLLER_MOTION,
                   G_SIGNAL_RUN_FIRST,
                   0, NULL, NULL,
-                  NULL,
+                  _gtk_marshal_VOID__ENUM_ENUM,
                   G_TYPE_NONE,
                   2,
                   GDK_TYPE_CROSSING_MODE,
                   GDK_TYPE_NOTIFY_TYPE);
+  g_signal_set_va_marshaller (signals[LEAVE],
+                              G_TYPE_FROM_CLASS (klass),
+                              _gtk_marshal_VOID__ENUM_ENUMv);
 
   /**
    * GtkEventControllerMotion::motion:
@@ -296,8 +303,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 466a097a86..165936d7c7 100644
--- a/gtk/gtkgesture.c
+++ b/gtk/gtkgesture.c
@@ -123,6 +123,7 @@
 #include "gtkprivate.h"
 #include "gtkmain.h"
 #include "gtkintl.h"
+#include "gtkmarshalers.h"
 #include "gtknative.h"
 
 typedef struct _GtkGesturePrivate GtkGesturePrivate;
@@ -880,9 +881,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/gtkgestureclick.c b/gtk/gtkgestureclick.c
index 4fa713109a..8814540b18 100644
--- a/gtk/gtkgestureclick.c
+++ b/gtk/gtkgestureclick.c
@@ -40,6 +40,7 @@
 #include "gtkgestureclickprivate.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#include "gtkmarshalers.h"
 
 typedef struct _GtkGestureClickPrivate GtkGestureClickPrivate;
 
@@ -365,9 +366,13 @@ gtk_gesture_click_class_init (GtkGestureClickClass *klass)
                   G_TYPE_FROM_CLASS (klass),
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GtkGestureClickClass, 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);
 
   /**
    * GtkGestureClick::released:
@@ -386,9 +391,13 @@ gtk_gesture_click_class_init (GtkGestureClickClass *klass)
                   G_TYPE_FROM_CLASS (klass),
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GtkGestureClickClass, 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);
   /**
    * GtkGestureClick::stopped:
    * @gesture: the object which received the signal
@@ -422,10 +431,14 @@ gtk_gesture_click_class_init (GtkGestureClickClass *klass)
     g_signal_new (I_("unpaired-release"),
                   G_TYPE_FROM_CLASS (klass),
                   G_SIGNAL_RUN_LAST,
-                  0, NULL, NULL, NULL,
+                  0, NULL, NULL,
+                  _gtk_marshal_VOID__DOUBLE_DOUBLE_UINT_BOXED,
                   G_TYPE_NONE, 4,
                   G_TYPE_DOUBLE, G_TYPE_DOUBLE,
                   G_TYPE_UINT, GDK_TYPE_EVENT_SEQUENCE);
+  g_signal_set_va_marshaller (signals[UNPAIRED_RELEASE],
+                              G_TYPE_FROM_CLASS (klass),
+                              _gtk_marshal_VOID__DOUBLE_DOUBLE_UINT_BOXEDv);
 }
 
 static void
diff --git a/gtk/gtkgesturedrag.c b/gtk/gtkgesturedrag.c
index baccf2f2df..54cdacb683 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
@@ -169,8 +174,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
@@ -184,8 +193,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 073a7b6d09..6b5632d15f 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;
 
@@ -303,8 +304,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/gtkgesturepan.c b/gtk/gtkgesturepan.c
index cfd5eeb8c0..fa656084c1 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;
 
@@ -252,9 +253,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 dfa6f597ed..687589e571 100644
--- a/gtk/gtkgesturerotate.c
+++ b/gtk/gtkgesturerotate.c
@@ -242,8 +242,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 2122f08e09..e5742d523b 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 83bc65653e..2ff8678c7f 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
 
@@ -237,8 +238,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 5f91f32fef..5ee6eb4d0b 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"
@@ -896,9 +897,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:
@@ -924,6 +928,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:
@@ -951,6 +958,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 322428e76d..aa5b662996 100644
--- a/gtk/gtkmarshalers.list
+++ b/gtk/gtkmarshalers.list
@@ -26,8 +26,10 @@ BOOLEAN:BOXED,BOXED
 BOOLEAN:DOUBLE,DOUBLE
 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
@@ -42,6 +44,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
@@ -49,18 +52,23 @@ BOOLEAN:STRING
 ENUM:ENUM
 ENUM:VOID
 INT:POINTER
+INT:DOUBLE,DOUBLE
 OBJECT:VOID
 STRING:DOUBLE
 STRING:STRING
-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
 VOID:BOXED,UINT,FLAGS
+VOID:DOUBLE,DOUBLE
+VOID:DOUBLE,DOUBLE,ENUM,ENUM
+VOID:DOUBLE,DOUBLE,UINT,BOXED
 VOID:ENUM,BOOLEAN
+VOID:ENUM,DOUBLE
 VOID:ENUM,ENUM
 VOID:ENUM,FLOAT
 VOID:ENUM,FLOAT,BOOLEAN
@@ -70,6 +78,7 @@ VOID:ENUM,INT,INT
 VOID:ENUM,OBJECT
 VOID:ENUM,STRING
 VOID:INT,BOOLEAN
+VOID:INT,DOUBLE,DOUBLE
 VOID:INT,INT
 VOID:INT,INT,BOXED
 VOID:INT,INT,INT
@@ -107,12 +116,12 @@ VOID:STRING,INT,POINTER
 VOID:STRING,UINT,FLAGS
 VOID:STRING,UINT,FLAGS,UINT
 VOID:UINT,FLAGS,BOXED
-VOID:UINT,UINT
 VOID:UINT,STRING
 VOID:UINT,BOXED,UINT,FLAGS,FLAGS
 VOID:UINT,OBJECT,UINT,FLAGS,FLAGS
 VOID:UINT,STRING,UINT
 VOID:UINT,UINT
+VOID:UINT,UINT,FLAGS
 OBJECT:OBJECT,INT,INT
 VOID:OBJECT,STRING,POINTER,POINTER
 INT:INT
diff --git a/gtk/gtkplacesview.c b/gtk/gtkplacesview.c
index 356bf18aa5..75c4af2372 100644
--- a/gtk/gtkplacesview.c
+++ b/gtk/gtkplacesview.c
@@ -2234,10 +2234,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 7e33a3a7c5..1937a7ea5c 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -771,8 +771,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);
 
   /**
@@ -794,8 +793,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 a824dc80d6..5dc3766037 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -1349,12 +1349,15 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
                   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:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]