[glib] Stop using glib-genmarshal at build time



commit b74e2a720a09fcb5ceb1cd3b38e3ce32d14c2234
Author: Colin Walters <walters verbum org>
Date:   Mon Jun 20 09:06:07 2011 -0400

    Stop using glib-genmarshal at build time
    
    To help cross compilation, don't use glib-genmarshal in our
    build.  This is easy now that we have g_cclosure_marshal_generic().
    
    In gobject/, add gmarshal.[ch] to git (making the existing entry
    points stubs).
    
    In gio/, simply switch to using g_cclosure_marshal_generic().
    
    https://bugzilla.gnome.org/show_bug.cgi?id=652168

 gio/Makefile.am                |   23 ---
 gio/gactiongroup.c             |    5 +-
 gio/gapplication.c             |    5 +-
 gio/gcancellable.c             |    3 +-
 gio/gdbusauthobserver.c        |    3 +-
 gio/gdbusconnection.c          |    3 +-
 gio/gdbusinterface.c           |    1 -
 gio/gdbusinterfaceskeleton.c   |    3 +-
 gio/gdbusnameowning.c          |    7 +-
 gio/gdbusnamewatching.c        |    5 +-
 gio/gdbusobject.c              |    1 -
 gio/gdbusobjectmanager.c       |    5 +-
 gio/gdbusobjectmanagerclient.c |    5 +-
 gio/gdbusobjectskeleton.c      |    3 +-
 gio/gdbusproxy.c               |    5 +-
 gio/gdbusserver.c              |    3 +-
 gio/gfilemonitor.c             |    3 +-
 gio/gio-marshal.list           |   34 ----
 gio/gmountoperation.c          |    7 +-
 gio/gpollableinputstream.c     |    3 +-
 gio/gpollableoutputstream.c    |    1 -
 gio/gsettings.c                |    5 +-
 gio/gsettingsbackend.c         |    1 -
 gio/gsocket.c                  |    3 +-
 gio/gsocketservice.c           |    3 +-
 gio/gthreadedsocketservice.c   |    4 +-
 gio/gtlsclientconnection.c     |    1 -
 gio/gtlsconnection.c           |    3 +-
 gio/gtlsserverconnection.c     |    1 -
 gobject/.gitignore             |    1 -
 gobject/Makefile.am            |   37 +----
 gobject/gmarshal.c             |  338 ++++++++++++++++++++++++++++++++++++++++
 gobject/gmarshal.h             |  187 ++++++++++++++++++++++
 gobject/gmarshal.list          |   27 +---
 gobject/gsignal.c              |    4 -
 35 files changed, 565 insertions(+), 178 deletions(-)
---
diff --git a/gio/Makefile.am b/gio/Makefile.am
index dcb319b..2ef3c9b 100644
--- a/gio/Makefile.am
+++ b/gio/Makefile.am
@@ -48,26 +48,6 @@ AM_CPPFLAGS = \
 
 lib_LTLIBRARIES = libgio-2.0.la
 
-marshal_sources = \
-        gio-marshal.h	\
-        gio-marshal.c	\
-	$(NULL)
-
-if CROSS_COMPILING
-  glib_genmarshal=$(GLIB_GENMARSHAL)
-else
-  glib_genmarshal=../gobject/glib-genmarshal
-endif
-
-gio-marshal.h: gio-marshal.list
-	$(AM_V_GEN) $(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --header --internal > $  tmp && \
-	  mv $  tmp $@
-
-gio-marshal.c: gio-marshal.h gio-marshal.list
-	$(AM_V_GEN) (echo "#include \"gio-marshal.h\""; \
-	$(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --body --internal) > $  tmp && \
-	  mv $  tmp $@
-
 gdbus_headers = 			\
 	gdbusauthobserver.h		\
 	gcredentials.h			\
@@ -572,14 +552,11 @@ gioinclude_HEADERS = 		\
 
 # these sources (also mentioned above) are generated.
 BUILT_SOURCES = 		\
-	gio-marshal.h 		\
-	gio-marshal.c 		\
 	gioenumtypes.h		\
 	gioenumtypes.c		\
 	$(NULL)
 
 EXTRA_DIST += 			\
-	gio-marshal.list	\
 	gio.symbols		\
 	gioenumtypes.h.template	\
 	gioenumtypes.c.template	\
diff --git a/gio/gactiongroup.c b/gio/gactiongroup.c
index 1eea106..0f9b045 100644
--- a/gio/gactiongroup.c
+++ b/gio/gactiongroup.c
@@ -22,7 +22,6 @@
 #include "config.h"
 #include "gactiongroup.h"
 #include "gaction.h"
-#include "gio-marshal.h"
 #include "glibintl.h"
 
 /**
@@ -124,7 +123,7 @@ g_action_group_default_init (GActionGroupInterface *class)
                   G_STRUCT_OFFSET (GActionGroupInterface,
                                    action_enabled_changed),
                   NULL, NULL,
-                  _gio_marshal_VOID__STRING_BOOLEAN,
+                  g_cclosure_marshal_generic,
                   G_TYPE_NONE, 2,
                   G_TYPE_STRING,
                   G_TYPE_BOOLEAN);
@@ -148,7 +147,7 @@ g_action_group_default_init (GActionGroupInterface *class)
                   G_STRUCT_OFFSET (GActionGroupInterface,
                                    action_state_changed),
                   NULL, NULL,
-                  _gio_marshal_VOID__STRING_VARIANT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_NONE, 2,
                   G_TYPE_STRING,
                   G_TYPE_VARIANT);
diff --git a/gio/gapplication.c b/gio/gapplication.c
index 42e465f..5e07976 100644
--- a/gio/gapplication.c
+++ b/gio/gapplication.c
@@ -30,7 +30,6 @@
 #include "gsettings.h"
 
 #include "gioenumtypes.h"
-#include "gio-marshal.h"
 #include "gioenums.h"
 #include "gfile.h"
 
@@ -607,7 +606,7 @@ g_application_class_init (GApplicationClass *class)
   g_application_signals[SIGNAL_OPEN] =
     g_signal_new ("open", G_TYPE_APPLICATION, G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GApplicationClass, open),
-                  NULL, NULL, _gio_marshal_VOID__POINTER_INT_STRING,
+                  NULL, NULL, g_cclosure_marshal_generic,
                   G_TYPE_NONE, 3, G_TYPE_POINTER, G_TYPE_INT, G_TYPE_STRING);
 
   /**
@@ -627,7 +626,7 @@ g_application_class_init (GApplicationClass *class)
     g_signal_new ("command-line", G_TYPE_APPLICATION, G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GApplicationClass, command_line),
                   g_signal_accumulator_first_wins, NULL,
-                  _gio_marshal_INT__OBJECT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_INT, 1, G_TYPE_APPLICATION_COMMAND_LINE);
 
   g_type_class_add_private (class, sizeof (GApplicationPrivate));
diff --git a/gio/gcancellable.c b/gio/gcancellable.c
index 00a833b..e1abcff 100644
--- a/gio/gcancellable.c
+++ b/gio/gcancellable.c
@@ -32,7 +32,6 @@
 #include <io.h>
 #endif
 #include "gcancellable.h"
-#include "gio-marshal.h"
 #include "glibintl.h"
 
 
@@ -816,7 +815,7 @@ static GSourceFuncs cancellable_source_funcs =
   cancellable_source_dispatch,
   cancellable_source_finalize,
   (GSourceFunc)cancellable_source_closure_callback,
-  (GSourceDummyMarshal)_gio_marshal_BOOLEAN__VOID,
+  (GSourceDummyMarshal)g_cclosure_marshal_generic,
 };
 
 /**
diff --git a/gio/gdbusauthobserver.c b/gio/gdbusauthobserver.c
index ff94821..1a81b95 100644
--- a/gio/gdbusauthobserver.c
+++ b/gio/gdbusauthobserver.c
@@ -23,7 +23,6 @@
 #include "config.h"
 
 #include "gdbusauthobserver.h"
-#include "gio-marshal.h"
 #include "gcredentials.h"
 #include "gioenumtypes.h"
 #include "giostream.h"
@@ -160,7 +159,7 @@ g_dbus_auth_observer_class_init (GDBusAuthObserverClass *klass)
                   G_STRUCT_OFFSET (GDBusAuthObserverClass, authorize_authenticated_peer),
                   _g_signal_accumulator_false_handled,
                   NULL, /* accu_data */
-                  _gio_marshal_BOOLEAN__OBJECT_OBJECT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_BOOLEAN,
                   2,
                   G_TYPE_IO_STREAM,
diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
index 2319fc0..951bb2d 100644
--- a/gio/gdbusconnection.c
+++ b/gio/gdbusconnection.c
@@ -121,7 +121,6 @@
 #include "gdbusmethodinvocation.h"
 #include "gdbusprivate.h"
 #include "gdbusauthobserver.h"
-#include "gio-marshal.h"
 #include "ginitable.h"
 #include "gasyncinitable.h"
 #include "giostream.h"
@@ -900,7 +899,7 @@ g_dbus_connection_class_init (GDBusConnectionClass *klass)
                                          G_STRUCT_OFFSET (GDBusConnectionClass, closed),
                                          NULL,
                                          NULL,
-                                         _gio_marshal_VOID__BOOLEAN_BOXED,
+                                         g_cclosure_marshal_generic,
                                          G_TYPE_NONE,
                                          2,
                                          G_TYPE_BOOLEAN,
diff --git a/gio/gdbusinterface.c b/gio/gdbusinterface.c
index 5bb0244..436ab3a 100644
--- a/gio/gdbusinterface.c
+++ b/gio/gdbusinterface.c
@@ -24,7 +24,6 @@
 
 #include "gdbusobject.h"
 #include "gdbusinterface.h"
-#include "gio-marshal.h"
 
 #include "glibintl.h"
 
diff --git a/gio/gdbusinterfaceskeleton.c b/gio/gdbusinterfaceskeleton.c
index 89616ae..3695c15 100644
--- a/gio/gdbusinterfaceskeleton.c
+++ b/gio/gdbusinterfaceskeleton.c
@@ -25,7 +25,6 @@
 #include "gdbusinterface.h"
 #include "gdbusinterfaceskeleton.h"
 #include "gdbusobjectskeleton.h"
-#include "gio-marshal.h"
 #include "gioenumtypes.h"
 #include "gdbusprivate.h"
 #include "gdbusmethodinvocation.h"
@@ -217,7 +216,7 @@ g_dbus_interface_skeleton_class_init (GDBusInterfaceSkeletonClass *klass)
                   G_STRUCT_OFFSET (GDBusInterfaceSkeletonClass, g_authorize_method),
                   _g_signal_accumulator_false_handled,
                   NULL,
-                  _gio_marshal_BOOLEAN__OBJECT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_BOOLEAN,
                   1,
                   G_TYPE_DBUS_METHOD_INVOCATION);
diff --git a/gio/gdbusnameowning.c b/gio/gdbusnameowning.c
index 6a5dc84..74c181a 100644
--- a/gio/gdbusnameowning.c
+++ b/gio/gdbusnameowning.c
@@ -29,7 +29,6 @@
 #include "gdbuserror.h"
 #include "gdbusprivate.h"
 #include "gdbusconnection.h"
-#include "gio-marshal.h"
 
 #include "glibintl.h"
 
@@ -649,7 +648,7 @@ own_name_data_new (GClosure *bus_acquired_closure,
       data->bus_acquired_closure = g_closure_ref (bus_acquired_closure);
       g_closure_sink (bus_acquired_closure);
       if (G_CLOSURE_NEEDS_MARSHAL (bus_acquired_closure))
-        g_closure_set_marshal (bus_acquired_closure, _gio_marshal_VOID__STRING);
+        g_closure_set_marshal (bus_acquired_closure, g_cclosure_marshal_generic);
     }
 
   if (name_acquired_closure != NULL)
@@ -657,7 +656,7 @@ own_name_data_new (GClosure *bus_acquired_closure,
       data->name_acquired_closure = g_closure_ref (name_acquired_closure);
       g_closure_sink (name_acquired_closure);
       if (G_CLOSURE_NEEDS_MARSHAL (name_acquired_closure))
-        g_closure_set_marshal (name_acquired_closure, _gio_marshal_VOID__STRING);
+        g_closure_set_marshal (name_acquired_closure, g_cclosure_marshal_generic);
     }
 
   if (name_lost_closure != NULL)
@@ -665,7 +664,7 @@ own_name_data_new (GClosure *bus_acquired_closure,
       data->name_lost_closure = g_closure_ref (name_lost_closure);
       g_closure_sink (name_lost_closure);
       if (G_CLOSURE_NEEDS_MARSHAL (name_lost_closure))
-        g_closure_set_marshal (name_lost_closure, _gio_marshal_VOID__STRING);
+        g_closure_set_marshal (name_lost_closure, g_cclosure_marshal_generic);
     }
 
   return data;
diff --git a/gio/gdbusnamewatching.c b/gio/gdbusnamewatching.c
index fc919b1..2fd0347 100644
--- a/gio/gdbusnamewatching.c
+++ b/gio/gdbusnamewatching.c
@@ -30,7 +30,6 @@
 #include "gdbuserror.h"
 #include "gdbusprivate.h"
 #include "gdbusconnection.h"
-#include "gio-marshal.h"
 
 #include "glibintl.h"
 
@@ -668,7 +667,7 @@ watch_name_data_new (GClosure *name_appeared_closure,
       data->name_appeared_closure = g_closure_ref (name_appeared_closure);
       g_closure_sink (name_appeared_closure);
       if (G_CLOSURE_NEEDS_MARSHAL (name_appeared_closure))
-        g_closure_set_marshal (name_appeared_closure, _gio_marshal_VOID__STRING_STRING);
+        g_closure_set_marshal (name_appeared_closure, g_cclosure_marshal_generic);
     }
 
   if (name_vanished_closure != NULL)
@@ -676,7 +675,7 @@ watch_name_data_new (GClosure *name_appeared_closure,
       data->name_vanished_closure = g_closure_ref (name_vanished_closure);
       g_closure_sink (name_vanished_closure);
       if (G_CLOSURE_NEEDS_MARSHAL (name_vanished_closure))
-        g_closure_set_marshal (name_vanished_closure, _gio_marshal_VOID__STRING);
+        g_closure_set_marshal (name_vanished_closure, g_cclosure_marshal_generic);
     }
 
   return data;
diff --git a/gio/gdbusobject.c b/gio/gdbusobject.c
index 8c16d66..52f003d 100644
--- a/gio/gdbusobject.c
+++ b/gio/gdbusobject.c
@@ -25,7 +25,6 @@
 #include "gdbusobject.h"
 #include "gdbusinterface.h"
 #include "gdbusutils.h"
-#include "gio-marshal.h"
 
 #include "glibintl.h"
 
diff --git a/gio/gdbusobjectmanager.c b/gio/gdbusobjectmanager.c
index 7e0a157..3bdd970 100644
--- a/gio/gdbusobjectmanager.c
+++ b/gio/gdbusobjectmanager.c
@@ -24,7 +24,6 @@
 
 #include "gdbusobject.h"
 #include "gdbusobjectmanager.h"
-#include "gio-marshal.h"
 #include "gdbusinterface.h"
 #include "gdbusutils.h"
 
@@ -109,7 +108,7 @@ g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
                 G_STRUCT_OFFSET (GDBusObjectManagerIface, interface_added),
                 NULL,
                 NULL,
-                _gio_marshal_VOID__OBJECT_OBJECT,
+                g_cclosure_marshal_generic,
                 G_TYPE_NONE,
                 2,
                 G_TYPE_DBUS_OBJECT,
@@ -134,7 +133,7 @@ g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
                 G_STRUCT_OFFSET (GDBusObjectManagerIface, interface_removed),
                 NULL,
                 NULL,
-                _gio_marshal_VOID__OBJECT_OBJECT,
+                g_cclosure_marshal_generic,
                 G_TYPE_NONE,
                 2,
                 G_TYPE_DBUS_OBJECT,
diff --git a/gio/gdbusobjectmanagerclient.c b/gio/gdbusobjectmanagerclient.c
index 474152d..e812c88 100644
--- a/gio/gdbusobjectmanagerclient.c
+++ b/gio/gdbusobjectmanagerclient.c
@@ -26,7 +26,6 @@
 #include "gdbusobjectmanagerclient.h"
 #include "gdbusobject.h"
 #include "gdbusprivate.h"
-#include "gio-marshal.h"
 #include "gioenumtypes.h"
 #include "ginitable.h"
 #include "gasyncresult.h"
@@ -514,7 +513,7 @@ g_dbus_object_manager_client_class_init (GDBusObjectManagerClientClass *klass)
                   G_STRUCT_OFFSET (GDBusObjectManagerClientClass, interface_proxy_signal),
                   NULL,
                   NULL,
-                  _gio_marshal_VOID__OBJECT_OBJECT_STRING_STRING_VARIANT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_NONE,
                   5,
                   G_TYPE_DBUS_OBJECT_PROXY,
@@ -552,7 +551,7 @@ g_dbus_object_manager_client_class_init (GDBusObjectManagerClientClass *klass)
                   G_STRUCT_OFFSET (GDBusObjectManagerClientClass, interface_proxy_properties_changed),
                   NULL,
                   NULL,
-                  _gio_marshal_VOID__OBJECT_OBJECT_VARIANT_BOXED,
+                  g_cclosure_marshal_generic,
                   G_TYPE_NONE,
                   4,
                   G_TYPE_DBUS_OBJECT_PROXY,
diff --git a/gio/gdbusobjectskeleton.c b/gio/gdbusobjectskeleton.c
index ce7362f..365cdfe 100644
--- a/gio/gdbusobjectskeleton.c
+++ b/gio/gdbusobjectskeleton.c
@@ -25,7 +25,6 @@
 #include "gdbusobject.h"
 #include "gdbusobjectskeleton.h"
 #include "gdbusinterfaceskeleton.h"
-#include "gio-marshal.h"
 #include "gdbusprivate.h"
 #include "gdbusmethodinvocation.h"
 #include "gdbusintrospection.h"
@@ -187,7 +186,7 @@ g_dbus_object_skeleton_class_init (GDBusObjectSkeletonClass *klass)
                   G_STRUCT_OFFSET (GDBusObjectSkeletonClass, authorize_method),
                   _g_signal_accumulator_false_handled,
                   NULL,
-                  _gio_marshal_BOOLEAN__OBJECT_OBJECT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_BOOLEAN,
                   2,
                   G_TYPE_DBUS_INTERFACE_SKELETON,
diff --git a/gio/gdbusproxy.c b/gio/gdbusproxy.c
index e5e5907..5e82e32 100644
--- a/gio/gdbusproxy.c
+++ b/gio/gdbusproxy.c
@@ -31,7 +31,6 @@
 #include "gdbusconnection.h"
 #include "gdbuserror.h"
 #include "gdbusprivate.h"
-#include "gio-marshal.h"
 #include "ginitable.h"
 #include "gasyncinitable.h"
 #include "gioerror.h"
@@ -567,7 +566,7 @@ g_dbus_proxy_class_init (GDBusProxyClass *klass)
                                                      G_STRUCT_OFFSET (GDBusProxyClass, g_properties_changed),
                                                      NULL,
                                                      NULL,
-                                                     _gio_marshal_VOID__VARIANT_BOXED,
+                                                     g_cclosure_marshal_generic,
                                                      G_TYPE_NONE,
                                                      2,
                                                      G_TYPE_VARIANT,
@@ -590,7 +589,7 @@ g_dbus_proxy_class_init (GDBusProxyClass *klass)
                                          G_STRUCT_OFFSET (GDBusProxyClass, g_signal),
                                          NULL,
                                          NULL,
-                                         _gio_marshal_VOID__STRING_STRING_VARIANT,
+                                         g_cclosure_marshal_generic,
                                          G_TYPE_NONE,
                                          3,
                                          G_TYPE_STRING,
diff --git a/gio/gdbusserver.c b/gio/gdbusserver.c
index ab0bad0..e7beb48 100644
--- a/gio/gdbusserver.c
+++ b/gio/gdbusserver.c
@@ -41,7 +41,6 @@
 #include "gioenumtypes.h"
 #include "gdbusprivate.h"
 #include "gdbusauthobserver.h"
-#include "gio-marshal.h"
 #include "ginitable.h"
 #include "gsocketservice.h"
 #include "gthreadedsocketservice.h"
@@ -426,7 +425,7 @@ g_dbus_server_class_init (GDBusServerClass *klass)
                                                   G_STRUCT_OFFSET (GDBusServerClass, new_connection),
                                                   g_signal_accumulator_true_handled,
                                                   NULL, /* accu_data */
-                                                  _gio_marshal_BOOLEAN__OBJECT,
+                                                  g_cclosure_marshal_generic,
                                                   G_TYPE_BOOLEAN,
                                                   1,
                                                   G_TYPE_DBUS_CONNECTION);
diff --git a/gio/gfilemonitor.c b/gio/gfilemonitor.c
index f7a87b6..7e62874 100644
--- a/gio/gfilemonitor.c
+++ b/gio/gfilemonitor.c
@@ -24,7 +24,6 @@
 #include <string.h>
 
 #include "gfilemonitor.h"
-#include "gio-marshal.h"
 #include "gioenumtypes.h"
 #include "gfile.h"
 #include "gvfs.h"
@@ -241,7 +240,7 @@ g_file_monitor_class_init (GFileMonitorClass *klass)
 		  G_SIGNAL_RUN_LAST,
 		  G_STRUCT_OFFSET (GFileMonitorClass, changed),
 		  NULL, NULL,
-		  _gio_marshal_VOID__OBJECT_OBJECT_ENUM,
+		  g_cclosure_marshal_generic,
 		  G_TYPE_NONE, 3,
 		  G_TYPE_FILE, G_TYPE_FILE, G_TYPE_FILE_MONITOR_EVENT);
 
diff --git a/gio/gmountoperation.c b/gio/gmountoperation.c
index a6bac9b..ef6486b 100644
--- a/gio/gmountoperation.c
+++ b/gio/gmountoperation.c
@@ -26,7 +26,6 @@
 
 #include "gmountoperation.h"
 #include "gioenumtypes.h"
-#include "gio-marshal.h"
 #include "glibintl.h"
 
 
@@ -276,7 +275,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
 		  G_SIGNAL_RUN_LAST,
 		  G_STRUCT_OFFSET (GMountOperationClass, ask_password),
 		  NULL, NULL,
-		  _gio_marshal_VOID__STRING_STRING_STRING_FLAGS,
+		  g_cclosure_marshal_generic,
 		  G_TYPE_NONE, 4,
 		  G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_ASK_PASSWORD_FLAGS);
 		  
@@ -299,7 +298,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
 		  G_SIGNAL_RUN_LAST,
 		  G_STRUCT_OFFSET (GMountOperationClass, ask_question),
 		  NULL, NULL,
-		  _gio_marshal_VOID__STRING_BOXED,
+		  g_cclosure_marshal_generic,
 		  G_TYPE_NONE, 2,
 		  G_TYPE_STRING, G_TYPE_STRV);
 		  
@@ -368,7 +367,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
 		  G_SIGNAL_RUN_LAST,
 		  G_STRUCT_OFFSET (GMountOperationClass, show_processes),
 		  NULL, NULL,
-		  _gio_marshal_VOID__STRING_BOXED_BOXED,
+		  g_cclosure_marshal_generic,
 		  G_TYPE_NONE, 3,
 		  G_TYPE_STRING, G_TYPE_ARRAY, G_TYPE_STRV);
 
diff --git a/gio/gpollableinputstream.c b/gio/gpollableinputstream.c
index c9276cb..6bad2a0 100644
--- a/gio/gpollableinputstream.c
+++ b/gio/gpollableinputstream.c
@@ -24,7 +24,6 @@
 
 #include "gpollableinputstream.h"
 #include "gasynchelper.h"
-#include "gio-marshal.h"
 #include "glibintl.h"
 
 /**
@@ -272,7 +271,7 @@ static GSourceFuncs pollable_source_funcs =
   pollable_source_dispatch,
   pollable_source_finalize,
   (GSourceFunc)pollable_source_closure_callback,
-  (GSourceDummyMarshal)_gio_marshal_BOOLEAN__VOID,
+  (GSourceDummyMarshal)g_cclosure_marshal_generic,
 };
 
 /**
diff --git a/gio/gpollableoutputstream.c b/gio/gpollableoutputstream.c
index 224c6ce..e6eee4f 100644
--- a/gio/gpollableoutputstream.c
+++ b/gio/gpollableoutputstream.c
@@ -25,7 +25,6 @@
 #include "gpollableoutputstream.h"
 #include "gasynchelper.h"
 #include "gfiledescriptorbased.h"
-#include "gio-marshal.h"
 #include "glibintl.h"
 
 /**
diff --git a/gio/gsettings.c b/gio/gsettings.c
index 2b1c161..fc7e074 100644
--- a/gio/gsettings.c
+++ b/gio/gsettings.c
@@ -31,7 +31,6 @@
 #include "gdelayedsettingsbackend.h"
 #include "gsettingsbackendinternal.h"
 #include "gsettings-mapping.h"
-#include "gio-marshal.h"
 #include "gsettingsschema.h"
 
 #include <string.h>
@@ -622,7 +621,7 @@ g_settings_class_init (GSettingsClass *class)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GSettingsClass, change_event),
                   g_signal_accumulator_true_handled, NULL,
-                  _gio_marshal_BOOL__POINTER_INT,
+                  g_cclosure_marshal_generic,
                   G_TYPE_BOOLEAN, 2, G_TYPE_POINTER, G_TYPE_INT);
 
   /**
@@ -676,7 +675,7 @@ g_settings_class_init (GSettingsClass *class)
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GSettingsClass, writable_change_event),
                   g_signal_accumulator_true_handled, NULL,
-                  _gio_marshal_BOOLEAN__UINT, G_TYPE_BOOLEAN, 1, G_TYPE_UINT);
+                  g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 1, G_TYPE_UINT);
 
   /**
    * GSettings:context:
diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c
index ef2c70e..9deaa8e 100644
--- a/gio/gsettingsbackend.c
+++ b/gio/gsettingsbackend.c
@@ -26,7 +26,6 @@
 #include "gsettingsbackendinternal.h"
 #include "gsimplepermission.h"
 #include "giomodule-priv.h"
-#include "gio-marshal.h"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/gio/gsocket.c b/gio/gsocket.c
index c2f5107..070745d 100644
--- a/gio/gsocket.c
+++ b/gio/gsocket.c
@@ -54,7 +54,6 @@
 #include "gioerror.h"
 #include "gioenums.h"
 #include "gioerror.h"
-#include "gio-marshal.h"
 #include "gnetworkingprivate.h"
 #include "gsocketaddress.h"
 #include "gsocketcontrolmessage.h"
@@ -2537,7 +2536,7 @@ static GSourceFuncs socket_source_funcs =
   socket_source_dispatch,
   socket_source_finalize,
   (GSourceFunc)socket_source_closure_callback,
-  (GSourceDummyMarshal)_gio_marshal_BOOLEAN__FLAGS,
+  (GSourceDummyMarshal)g_cclosure_marshal_generic,
 };
 
 static GSource *
diff --git a/gio/gsocketservice.c b/gio/gsocketservice.c
index 54ea1e3..9e4e6b3 100644
--- a/gio/gsocketservice.c
+++ b/gio/gsocketservice.c
@@ -59,7 +59,6 @@
 #include "config.h"
 #include "gsocketservice.h"
 
-#include "gio-marshal.h"
 #include <gio/gio.h>
 #include "gsocketlistener.h"
 #include "gsocketconnection.h"
@@ -271,7 +270,7 @@ g_socket_service_class_init (GSocketServiceClass *class)
     g_signal_new ("incoming", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (GSocketServiceClass, incoming),
                   g_signal_accumulator_true_handled, NULL,
-                  _gio_marshal_BOOLEAN__OBJECT_OBJECT, G_TYPE_BOOLEAN,
+                  g_cclosure_marshal_generic, G_TYPE_BOOLEAN,
                   2, G_TYPE_SOCKET_CONNECTION, G_TYPE_OBJECT);
 }
 
diff --git a/gio/gthreadedsocketservice.c b/gio/gthreadedsocketservice.c
index feaf31b..af2ce32 100644
--- a/gio/gthreadedsocketservice.c
+++ b/gio/gthreadedsocketservice.c
@@ -50,8 +50,6 @@
 #include "gthreadedsocketservice.h"
 #include "glibintl.h"
 
-#include "gio-marshal.h"
-
 
 static guint g_threaded_socket_service_run_signal;
 
@@ -240,7 +238,7 @@ g_threaded_socket_service_class_init (GThreadedSocketServiceClass *class)
     g_signal_new ("run", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST,
 		  G_STRUCT_OFFSET (GThreadedSocketServiceClass, run),
 		  g_signal_accumulator_true_handled, NULL,
-		  _gio_marshal_BOOLEAN__OBJECT_OBJECT, G_TYPE_BOOLEAN,
+		  g_cclosure_marshal_generic, G_TYPE_BOOLEAN,
 		  2, G_TYPE_SOCKET_CONNECTION, G_TYPE_OBJECT);
 
   g_object_class_install_property (gobject_class, PROP_MAX_THREADS,
diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c
index e8d9b0f..f0f097b 100644
--- a/gio/gtlsclientconnection.c
+++ b/gio/gtlsclientconnection.c
@@ -24,7 +24,6 @@
 #include "gtlsclientconnection.h"
 #include "ginitable.h"
 #include "gioenumtypes.h"
-#include "gio-marshal.h"
 #include "gsocket.h"
 #include "gsocketconnectable.h"
 #include "gtlsbackend.h"
diff --git a/gio/gtlsconnection.c b/gio/gtlsconnection.c
index 96d03e3..74da0e4 100644
--- a/gio/gtlsconnection.c
+++ b/gio/gtlsconnection.c
@@ -24,7 +24,6 @@
 #include "gtlsconnection.h"
 #include "gcancellable.h"
 #include "gioenumtypes.h"
-#include "gio-marshal.h"
 #include "gsocket.h"
 #include "gtlsbackend.h"
 #include "gtlscertificate.h"
@@ -265,7 +264,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
 		  G_SIGNAL_RUN_LAST,
 		  G_STRUCT_OFFSET (GTlsConnectionClass, accept_certificate),
 		  g_signal_accumulator_true_handled, NULL,
-		  _gio_marshal_BOOLEAN__OBJECT_FLAGS,
+		  g_cclosure_marshal_generic,
 		  G_TYPE_BOOLEAN, 2,
 		  G_TYPE_TLS_CERTIFICATE,
 		  G_TYPE_TLS_CERTIFICATE_FLAGS);
diff --git a/gio/gtlsserverconnection.c b/gio/gtlsserverconnection.c
index 4965656..d42fb95 100644
--- a/gio/gtlsserverconnection.c
+++ b/gio/gtlsserverconnection.c
@@ -23,7 +23,6 @@
 
 #include "gtlsserverconnection.h"
 #include "ginitable.h"
-#include "gio-marshal.h"
 #include "gioenumtypes.h"
 #include "gsocket.h"
 #include "gtlsbackend.h"
diff --git a/gobject/.gitignore b/gobject/.gitignore
index 89dda70..6ecf1fb 100644
--- a/gobject/.gitignore
+++ b/gobject/.gitignore
@@ -1,6 +1,5 @@
 glib-genmarshal
 glib-mkenums
-gmarshal.[ch]
 gmarshal.strings
 gobject-query
 testgobject
diff --git a/gobject/Makefile.am b/gobject/Makefile.am
index 5250548..af090d6 100644
--- a/gobject/Makefile.am
+++ b/gobject/Makefile.am
@@ -6,6 +6,7 @@ include $(top_srcdir)/Makefile.decl
 
 SUBDIRS = . tests
 
+BUILT_SOURCES=
 CLEANFILES=
 
 if HAVE_THREADS
@@ -95,6 +96,7 @@ gobject_public_h_sources = \
 	gboxed.h		\
 	gclosure.h		\
 	genums.h		\
+	gmarshal.h		\
 	gobject.h		\
 	gparam.h		\
 	gparamspecs.h		\
@@ -107,8 +109,7 @@ gobject_public_h_sources = \
 	gvaluearray.h		\
 	gvaluecollector.h	\
 	gvaluetypes.h		\
-	gobjectnotifyqueue.c	\
-	gmarshal.h
+	gobjectnotifyqueue.c
 
 # GObject library header files that don't get installed
 gobject_private_h_sources =     \
@@ -123,6 +124,7 @@ gobject_c_sources = \
 	gboxed.c		\
 	gclosure.c		\
 	genums.c		\
+	gmarshal.c		\
 	gobject.c		\
 	gobject_trace.h		\
 	gparam.c		\
@@ -137,9 +139,6 @@ gobject_c_sources = \
 	gvaluetransform.c	\
 	gvaluetypes.c
 
-# these sources (also mentioned above) are generated.
-BUILT_SOURCES = gmarshal.h gmarshal.c
-
 if ENABLE_DTRACE
 gobject_probes.h: gobject_probes.d Makefile
 	$(AM_V_GEN) $(DTRACE) -C -h -s $< -o $  tmp
@@ -200,28 +199,6 @@ CLEANFILES += $(gen_sources)
 # srcdir to be writable, passing --disable-rebuilds to
 # ../configure will supress all autogeneration rules.
 
-if CROSS_COMPILING
-  glib_genmarshal=$(GLIB_GENMARSHAL)
-else
-  glib_genmarshal=./glib-genmarshal
-endif
-
-gmarshal.h: stamp-gmarshal.h
-	@true
-stamp-gmarshal.h: @REBUILD@ gmarshal.list glib-genmarshal$(EXEEXT)
-	$(MAKE) glib-genmarshal$(EXEEXT)
-	$(AM_V_GEN) echo "#ifndef __G_MARSHAL_H__" > xgen-gmh \
-	&& echo "#define __G_MARSHAL_H__" >> xgen-gmh \
-	&& $(glib_genmarshal) --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --header >> xgen-gmh \
-	&& echo "#endif /* __G_MARSHAL_H__ */" >> xgen-gmh \
-	&& (cmp -s xgen-gmh gmarshal.h 2>/dev/null || cp xgen-gmh gmarshal.h) \
-	&& rm -f xgen-gmh xgen-gmh~ \
-	&& echo timestamp > $@
-
-gmarshal.c: @REBUILD@ stamp-gmarshal.h
-	$(AM_V_GEN) $(glib_genmarshal) --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --body >> xgen-gmc \
-	&& cp xgen-gmc gmarshal.c \
-	&& rm -f xgen-gmc xgen-gmc~
 
 gmarshal.strings: @REBUILD@ $(srcdir)/gmarshal.list
 	$(AM_V_GEN) grep '^[A-Z]' $(srcdir)/gmarshal.list \
@@ -230,7 +207,6 @@ gmarshal.strings: @REBUILD@ $(srcdir)/gmarshal.list
 	&& rm -f xgen-gms xgen-gms~
 
 glib-genmarshal.o: gmarshal.strings
-gsignal.lo: gmarshal.c
 
 # target platform:
 libgobjectinclude_HEADERS = $(gobject_target_headers)
@@ -264,10 +240,7 @@ EXTRA_DIST += 			\
 
 BUILT_EXTRA_DIST = \
 	makefile.msc		\
-	gobject.rc		\
-	gmarshal.h		\
-	gmarshal.c		\
-	stamp-gmarshal.h
+	gobject.rc
 
 gobject-win32-res.o: gobject.rc
 	$(AM_V_GEN) $(WINDRES) gobject.rc $@
diff --git a/gobject/gmarshal.c b/gobject/gmarshal.c
new file mode 100644
index 0000000..02a7c11
--- /dev/null
+++ b/gobject/gmarshal.c
@@ -0,0 +1,338 @@
+/* Note: This file is no longer generated.  See the comment in gmarshal.list */
+
+#include "gvalue.h"
+#include "gclosure.h"
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v)     g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v)      g_value_get_int (v)
+#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+#define g_marshal_value_peek_long(v)     g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
+#define g_marshal_value_peek_float(v)    g_value_get_float (v)
+#define g_marshal_value_peek_double(v)   g_value_get_double (v)
+#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v)    g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ *          Do not access GValues directly in your code. Instead, use the
+ *          g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
+#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
+#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
+#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:VOID (./gmarshal.list:6) */
+void
+g_cclosure_marshal_VOID__VOID (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:BOOLEAN (./gmarshal.list:7) */
+void
+g_cclosure_marshal_VOID__BOOLEAN (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:CHAR (./gmarshal.list:8) */
+void
+g_cclosure_marshal_VOID__CHAR (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:UCHAR (./gmarshal.list:9) */
+void
+g_cclosure_marshal_VOID__UCHAR (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:INT (./gmarshal.list:10) */
+void
+g_cclosure_marshal_VOID__INT (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:UINT (./gmarshal.list:11) */
+void
+g_cclosure_marshal_VOID__UINT (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:LONG (./gmarshal.list:12) */
+void
+g_cclosure_marshal_VOID__LONG (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:ULONG (./gmarshal.list:13) */
+void
+g_cclosure_marshal_VOID__ULONG (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:ENUM (./gmarshal.list:14) */
+void
+g_cclosure_marshal_VOID__ENUM (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:FLAGS (./gmarshal.list:15) */
+void
+g_cclosure_marshal_VOID__FLAGS (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:FLOAT (./gmarshal.list:16) */
+void
+g_cclosure_marshal_VOID__FLOAT (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:DOUBLE (./gmarshal.list:17) */
+void
+g_cclosure_marshal_VOID__DOUBLE (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:STRING (./gmarshal.list:18) */
+void
+g_cclosure_marshal_VOID__STRING (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:PARAM (./gmarshal.list:19) */
+void
+g_cclosure_marshal_VOID__PARAM (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:BOXED (./gmarshal.list:20) */
+void
+g_cclosure_marshal_VOID__BOXED (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:POINTER (./gmarshal.list:21) */
+void
+g_cclosure_marshal_VOID__POINTER (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:OBJECT (./gmarshal.list:22) */
+void
+g_cclosure_marshal_VOID__OBJECT (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:VARIANT (./gmarshal.list:23) */
+void
+g_cclosure_marshal_VOID__VARIANT (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* VOID:UINT,POINTER (./gmarshal.list:26) */
+void
+g_cclosure_marshal_VOID__UINT_POINTER (GClosure     *closure,
+                                       GValue       *return_value G_GNUC_UNUSED,
+                                       guint         n_param_values,
+                                       const GValue *param_values,
+                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                       gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* BOOL:FLAGS (./gmarshal.list:27) */
+void
+g_cclosure_marshal_BOOLEAN__FLAGS (GClosure     *closure,
+                                   GValue       *return_value G_GNUC_UNUSED,
+                                   guint         n_param_values,
+                                   const GValue *param_values,
+                                   gpointer      invocation_hint G_GNUC_UNUSED,
+                                   gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* STRING:OBJECT,POINTER (./gmarshal.list:28) */
+void
+g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure     *closure,
+                                           GValue       *return_value G_GNUC_UNUSED,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint G_GNUC_UNUSED,
+                                           gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
+/* BOOL:BOXED,BOXED (./gmarshal.list:29) */
+void
+g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure     *closure,
+                                         GValue       *return_value G_GNUC_UNUSED,
+                                         guint         n_param_values,
+                                         const GValue *param_values,
+                                         gpointer      invocation_hint G_GNUC_UNUSED,
+                                         gpointer      marshal_data)
+{
+  g_cclosure_marshal_generic (closure, return_value, n_param_values, param_values,
+			      invocation_hint, marshal_data);
+}
+
diff --git a/gobject/gmarshal.h b/gobject/gmarshal.h
new file mode 100644
index 0000000..1238c02
--- /dev/null
+++ b/gobject/gmarshal.h
@@ -0,0 +1,187 @@
+/* Note: This file is no longer generated.  See the comment in gmarshal.list */
+#ifndef __G_MARSHAL_H__
+#define __G_MARSHAL_H__
+
+G_BEGIN_DECLS
+
+/* VOID:VOID (./gmarshal.list:6) */
+extern void g_cclosure_marshal_VOID__VOID (GClosure     *closure,
+                                           GValue       *return_value,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint,
+                                           gpointer      marshal_data);
+
+/* VOID:BOOLEAN (./gmarshal.list:7) */
+extern void g_cclosure_marshal_VOID__BOOLEAN (GClosure     *closure,
+                                              GValue       *return_value,
+                                              guint         n_param_values,
+                                              const GValue *param_values,
+                                              gpointer      invocation_hint,
+                                              gpointer      marshal_data);
+
+/* VOID:CHAR (./gmarshal.list:8) */
+extern void g_cclosure_marshal_VOID__CHAR (GClosure     *closure,
+                                           GValue       *return_value,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint,
+                                           gpointer      marshal_data);
+
+/* VOID:UCHAR (./gmarshal.list:9) */
+extern void g_cclosure_marshal_VOID__UCHAR (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:INT (./gmarshal.list:10) */
+extern void g_cclosure_marshal_VOID__INT (GClosure     *closure,
+                                          GValue       *return_value,
+                                          guint         n_param_values,
+                                          const GValue *param_values,
+                                          gpointer      invocation_hint,
+                                          gpointer      marshal_data);
+
+/* VOID:UINT (./gmarshal.list:11) */
+extern void g_cclosure_marshal_VOID__UINT (GClosure     *closure,
+                                           GValue       *return_value,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint,
+                                           gpointer      marshal_data);
+
+/* VOID:LONG (./gmarshal.list:12) */
+extern void g_cclosure_marshal_VOID__LONG (GClosure     *closure,
+                                           GValue       *return_value,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint,
+                                           gpointer      marshal_data);
+
+/* VOID:ULONG (./gmarshal.list:13) */
+extern void g_cclosure_marshal_VOID__ULONG (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:ENUM (./gmarshal.list:14) */
+extern void g_cclosure_marshal_VOID__ENUM (GClosure     *closure,
+                                           GValue       *return_value,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint,
+                                           gpointer      marshal_data);
+
+/* VOID:FLAGS (./gmarshal.list:15) */
+extern void g_cclosure_marshal_VOID__FLAGS (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:FLOAT (./gmarshal.list:16) */
+extern void g_cclosure_marshal_VOID__FLOAT (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:DOUBLE (./gmarshal.list:17) */
+extern void g_cclosure_marshal_VOID__DOUBLE (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
+
+/* VOID:STRING (./gmarshal.list:18) */
+extern void g_cclosure_marshal_VOID__STRING (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
+
+/* VOID:PARAM (./gmarshal.list:19) */
+extern void g_cclosure_marshal_VOID__PARAM (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:BOXED (./gmarshal.list:20) */
+extern void g_cclosure_marshal_VOID__BOXED (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:POINTER (./gmarshal.list:21) */
+extern void g_cclosure_marshal_VOID__POINTER (GClosure     *closure,
+                                              GValue       *return_value,
+                                              guint         n_param_values,
+                                              const GValue *param_values,
+                                              gpointer      invocation_hint,
+                                              gpointer      marshal_data);
+
+/* VOID:OBJECT (./gmarshal.list:22) */
+extern void g_cclosure_marshal_VOID__OBJECT (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
+
+/* VOID:VARIANT (./gmarshal.list:23) */
+extern void g_cclosure_marshal_VOID__VARIANT (GClosure     *closure,
+                                              GValue       *return_value,
+                                              guint         n_param_values,
+                                              const GValue *param_values,
+                                              gpointer      invocation_hint,
+                                              gpointer      marshal_data);
+
+/* VOID:UINT,POINTER (./gmarshal.list:26) */
+extern void g_cclosure_marshal_VOID__UINT_POINTER (GClosure     *closure,
+                                                   GValue       *return_value,
+                                                   guint         n_param_values,
+                                                   const GValue *param_values,
+                                                   gpointer      invocation_hint,
+                                                   gpointer      marshal_data);
+
+/* BOOL:FLAGS (./gmarshal.list:27) */
+extern void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure     *closure,
+                                               GValue       *return_value,
+                                               guint         n_param_values,
+                                               const GValue *param_values,
+                                               gpointer      invocation_hint,
+                                               gpointer      marshal_data);
+#define g_cclosure_marshal_BOOL__FLAGS	g_cclosure_marshal_BOOLEAN__FLAGS
+
+/* STRING:OBJECT,POINTER (./gmarshal.list:28) */
+extern void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure     *closure,
+                                                       GValue       *return_value,
+                                                       guint         n_param_values,
+                                                       const GValue *param_values,
+                                                       gpointer      invocation_hint,
+                                                       gpointer      marshal_data);
+
+/* BOOL:BOXED,BOXED (./gmarshal.list:29) */
+extern void g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure     *closure,
+                                                     GValue       *return_value,
+                                                     guint         n_param_values,
+                                                     const GValue *param_values,
+                                                     gpointer      invocation_hint,
+                                                     gpointer      marshal_data);
+#define g_cclosure_marshal_BOOL__BOXED_BOXED	g_cclosure_marshal_BOOLEAN__BOXED_BOXED
+
+G_END_DECLS
+
+#endif /* __G_MARSHAL_H__ */
diff --git a/gobject/gmarshal.list b/gobject/gmarshal.list
index 41cf74a..270a9eb 100644
--- a/gobject/gmarshal.list
+++ b/gobject/gmarshal.list
@@ -1,27 +1,6 @@
-# see glib-genmarshal(1) for a detailed description of the file format,
-# possible parameter types are:
-#   VOID        indicates   no   return   type,  or  no  extra
-#               parameters. if VOID is used as  the  parameter
-#               list, no additional parameters may be present.
-#   BOOLEAN     for boolean types (gboolean)
-#   CHAR        for signed char types (gchar)
-#   UCHAR       for unsigned char types (guchar)
-#   INT         for signed integer types (gint)
-#   UINT        for unsigned integer types (guint)
-#   LONG        for signed long integer types (glong)
-#   ULONG       for unsigned long integer types (gulong)
-#   ENUM        for enumeration types (gint)
-#   FLAGS       for flag enumeration types (guint)
-#   FLOAT       for single-precision float types (gfloat)
-#   DOUBLE      for double-precision float types (gdouble)
-#   STRING      for string types (gchar*)
-#   PARAM       for GParamSpec or derived types  (GParamSpec*)
-#   BOXED       for boxed (anonymous but reference counted) types (GBoxed*)
-#   POINTER     for anonymous pointer types (gpointer)
-#   OBJECT      for GObject or derived types (GObject*)
-#   VARIANT     for variants (GVariant*)
-#   NONE        deprecated alias for VOID
-#   BOOL        deprecated alias for BOOLEAN
+# Note: This file used to generate gmarshal.[ch], but it doesn't any
+# longer.  Now that we have g_cclosure_marshal_generic(), there's no
+# reason to use these.  They're kept for ABI compatibility.
 
 # standard VOID return marshallers
 VOID:VOID
diff --git a/gobject/gsignal.c b/gobject/gsignal.c
index 03dd73d..c8cd4be 100644
--- a/gobject/gsignal.c
+++ b/gobject/gsignal.c
@@ -3474,7 +3474,3 @@ g_signal_accumulator_first_wins (GSignalInvocationHint *ihint,
   g_value_copy (handler_return, return_accu);
   return FALSE;
 }
-
-
-/* --- compile standard marshallers --- */
-#include "gmarshal.c"



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