diff options
author | Colomban Wendling <ban@herbesfolles.org> | 2016-05-17 00:52:28 +0200 |
---|---|---|
committer | Colomban Wendling <ban@herbesfolles.org> | 2016-05-17 00:52:28 +0200 |
commit | 99d52264a609b61e8639f3c1087a78fedb0b9de8 (patch) | |
tree | 5986c3ea7348e1e0c0977ebee57c8eac105975cd | |
parent | 9075832b2e345bb3ffe5d9b53ce3b899dc3a1efa (diff) | |
download | scintilla-mirror-99d52264a609b61e8639f3c1087a78fedb0b9de8.tar.gz |
GTK: Add makefile rules to auto-generate marshallers
This makes it easier to update or add new marshallers.
Also, re-generate the current one using a current version of
glib-genmarshal, which generates different output (accessing different
fields for enum and flags) since at least 2008. Although neither of
these types are currently used, it seems safer this way.
-rw-r--r-- | gtk/makefile | 10 | ||||
-rw-r--r-- | gtk/scintilla-marshal.c | 18 |
2 files changed, 19 insertions, 9 deletions
diff --git a/gtk/makefile b/gtk/makefile index 8fd92f6db..200ded12d 100644 --- a/gtk/makefile +++ b/gtk/makefile @@ -6,7 +6,7 @@ # Builds for GTK+ 2 and no longer supports GTK+ 1. # Also works with ming32-make on Windows. -.SUFFIXES: .cxx .c .o .h .a +.SUFFIXES: .cxx .c .o .h .a .list ifdef CLANG CXX = clang++ -Wno-deprecated-register CC = clang @@ -85,6 +85,14 @@ MARSHALLER=scintilla-marshal.o .c.o: $(CC) $(CONFIGFLAGS) $(CFLAGS) -w -c $< +GLIB_GENMARSHAL = glib-genmarshal +GLIB_GENMARSHAL_FLAGS = --prefix=scintilla_marshal + +.list.h: + $(GLIB_GENMARSHAL) --header $(GLIB_GENMARSHAL_FLAGS) $< > $@ +.list.c: + $(GLIB_GENMARSHAL) --body $(GLIB_GENMARSHAL_FLAGS) $< > $@ + LEXOBJS:=$(addsuffix .o,$(basename $(notdir $(wildcard ../lexers/Lex*.cxx)))) all: $(COMPLIB) diff --git a/gtk/scintilla-marshal.c b/gtk/scintilla-marshal.c index be57b7c2e..5470a5ba5 100644 --- a/gtk/scintilla-marshal.c +++ b/gtk/scintilla-marshal.c @@ -4,7 +4,7 @@ #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_char(v) g_value_get_schar (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) @@ -21,6 +21,7 @@ #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 @@ -35,8 +36,8 @@ #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_int -#define g_marshal_value_peek_flags(v) (v)->data[0].v_uint +#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 @@ -44,25 +45,26 @@ #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 */ /* NONE:INT,POINTER (scintilla-marshal.list:1) */ void scintilla_marshal_VOID__INT_POINTER (GClosure *closure, - GValue *return_value, + GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, - gpointer invocation_hint, + gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__INT_POINTER) (gpointer data1, gint arg_1, gpointer arg_2, gpointer data2); - register GMarshalFunc_VOID__INT_POINTER callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; + GMarshalFunc_VOID__INT_POINTER callback; + GCClosure *cc = (GCClosure*) closure; + gpointer data1, data2; g_return_if_fail (n_param_values == 3); |