From 3448a27829133bebb3bf1e29a30574304c899040 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 14 Mar 2005 06:47:51 +0000 Subject: [PATCH] Make work again. 2005-03-14 Matthias Clasen * abicheck.sh: Make work again. * gsourceclosure.c: Fix a typo. Make PLT-reduction work with gcc4, and don't include everything in gobjectalias.h: * gobject.symbols: Group symbols by header and source file. * makegobjectalias.pl: Protect definitions by the same preprocessor symbols used to guard the headers. Move the alias declarations to a separate file which is produced when calling makegalias.pl -def * Makefile.am (gobjectaliasdef.c): Add a rule to build this file. * *.c: Include gobjectalias.h after the other i GLib headers, include gobjectaliasdef.c at the bottom. --- gobject/ChangeLog | 16 ++ gobject/Makefile.am | 7 +- gobject/abicheck.sh | 2 +- gobject/gboxed.c | 6 +- gobject/gclosure.c | 5 +- gobject/genums.c | 6 +- gobject/gobject.c | 5 +- gobject/gobject.symbols | 284 +++++++++++++++++++++++------------ gobject/gobjectnotifyqueue.c | 2 +- gobject/gparam.c | 5 +- gobject/gparamspecs.c | 5 +- gobject/gsignal.c | 8 +- gobject/gsourceclosure.c | 5 +- gobject/gtype.c | 5 +- gobject/gtypemodule.c | 6 +- gobject/gtypeplugin.c | 5 +- gobject/gvalue.c | 5 +- gobject/gvaluearray.c | 5 +- gobject/gvaluetransform.c | 2 +- gobject/gvaluetypes.c | 4 +- gobject/makegobjectalias.pl | 57 +++++-- 21 files changed, 317 insertions(+), 128 deletions(-) diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 124ef525..c73f4d7d 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,19 @@ +2005-03-14 Matthias Clasen + + Make PLT-reduction work with gcc4, and don't include + everything in gobjectalias.h: + + * gobject.symbols: Group symbols by header and source + file. + * makegobjectalias.pl: Protect definitions by the same + preprocessor symbols used to guard the headers. Move + the alias declarations to a separate file which is + produced when calling makegalias.pl -def + * Makefile.am (gobjectaliasdef.c): Add a rule to + build this file. + * *.c: Include gobjectalias.h after the other i + GLib headers, include gobjectaliasdef.c at the bottom. + 2005-03-08 Matthias Clasen * gobject.symbols: Add the new attributes here, too. diff --git a/gobject/Makefile.am b/gobject/Makefile.am index ea78f380..6d17d54f 100644 --- a/gobject/Makefile.am +++ b/gobject/Makefile.am @@ -14,11 +14,14 @@ INCLUDES = \ -DG_DISABLE_CONST_RETURNS gobject.def: gobject.symbols - (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def + (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def gobjectalias.h: gobject.symbols $(PERL) $(srcdir)/makegobjectalias.pl < $(srcdir)/gobject.symbols > gobjectalias.h +gobjectaliasdef.c: gobject.symbols + $(PERL) $(srcdir)/makegobjectalias.pl -def < $(srcdir)/gobject.symbols > gobjectaliasdef.c + if OS_LINUX if HAVE_GNUC_VISIBILITY TESTS = abicheck.sh @@ -126,7 +129,7 @@ gobject_c_sources = \ gvaluetypes.c # these sources (also mentioned above) are generated. -BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h +BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h gobjectaliasdef.c # non-header sources (headers should be specified in the above variables) # that don't serve as direct make target sources, i.e. they don't have diff --git a/gobject/abicheck.sh b/gobject/abicheck.sh index 745db40a..53aaa5d4 100755 --- a/gobject/abicheck.sh +++ b/gobject/abicheck.sh @@ -5,7 +5,7 @@ egrep '^#([^i]|if).*[^\]$' "${top_builddir:-..}/glibconfig.h" > glibconfig.cpp INCLUDES="-include ${top_builddir:-..}/config.h" INCLUDES="$INCLUDES -include glibconfig.cpp" -cpp -P $INCLUDES ${srcdir:-.}/gobject.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE$//' | sort > expected-abi +cpp -P $INCLUDES -DALL_FILES ${srcdir:-.}/gobject.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE$//' | sort > expected-abi rm glibconfig.cpp nm -D .libs/libgobject-2.0.so | grep " T " | cut -d ' ' -f 3 | sort > actual-abi diff --git a/gobject/gboxed.c b/gobject/gboxed.c index dc3339ab..ee722a03 100644 --- a/gobject/gboxed.c +++ b/gobject/gboxed.c @@ -16,7 +16,6 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ -#include "gobjectalias.h" #include "gboxed.h" #include "gbsearcharray.h" @@ -25,6 +24,8 @@ #include "gclosure.h" #include "gvaluecollector.h" +#include "gobjectalias.h" + #include /* --- typedefs & structures --- */ @@ -529,3 +530,6 @@ g_value_take_boxed (GValue *value, value_set_boxed_internal (value, boxed, FALSE, TRUE); } + +#define __G_BOXED_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gclosure.c b/gobject/gclosure.c index 23299bf8..2323384a 100644 --- a/gobject/gclosure.c +++ b/gobject/gclosure.c @@ -16,10 +16,10 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ -#include "gobjectalias.h" #include "gclosure.h" #include "gvalue.h" +#include "gobjectalias.h" #include @@ -558,3 +558,6 @@ g_signal_type_cclosure_new (GType itype, return closure; } + +#define __G_CLOSURE_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/genums.c b/gobject/genums.c index 5bbc772c..63ccd939 100644 --- a/gobject/genums.c +++ b/gobject/genums.c @@ -23,12 +23,13 @@ #include -#include "gobjectalias.h" #include "genums.h" #include "gvalue.h" #include "gvaluecollector.h" +#include "gobjectalias.h" + /* --- prototypes --- */ static void g_enum_class_init (GEnumClass *class, @@ -420,3 +421,6 @@ g_value_get_flags (const GValue *value) return value->data[0].v_ulong; } + +#define __G_ENUMS_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gobject.c b/gobject/gobject.c index 6429cdc2..723b65f9 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -16,8 +16,8 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ -#include "gobjectalias.h" #include "gobject.h" +#include "gobjectalias.h" /* * MT safe @@ -2014,3 +2014,6 @@ g_cclosure_new_object_swap (GCallback callback_func, return closure; } + +#define __G_OBJECT_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gobject.symbols b/gobject/gobject.symbols index 6582ad4d..8e3d21e4 100644 --- a/gobject/gobject.symbols +++ b/gobject/gobject.symbols @@ -1,6 +1,39 @@ +/* This file lists all exported symbols. It is used to generate + * the gobject.def file used to control exports on Windows and the + * gobjectalias.h/gobjectaliasdef.c files used to avoid PLT entries for + * internal uses of exported functions (see makegobjectalias.pl). + * + * Every symbol must be included in the right + * #ifdef IN_HEADER(sym) #endif and + * #ifdef IN_FILE(sym) #endif sections. + */ +#ifdef ALL_FILES +#define IN_FILE(x) 1 +#define IN_HEADER(x) 1 +#endif +#if IN_HEADER(__G_BOXED_H__) +#if IN_FILE(__G_BOXED_C__) g_boxed_copy g_boxed_free g_boxed_type_register_static +g_gstring_get_type G_GNUC_CONST +g_strv_get_type G_GNUC_CONST +g_closure_get_type G_GNUC_CONST +g_value_get_type G_GNUC_CONST +g_value_array_get_type G_GNUC_CONST +g_value_set_boxed +g_value_take_boxed +g_value_dup_boxed +g_value_get_boxed +g_value_set_static_boxed +#ifndef G_DISABLE_DEPRECATED +g_value_set_boxed_take_ownership +#endif +#endif +#endif + +#if IN_HEADER(__G_MARSHAL_H__) +#if IN_FILE(__G_SIGNAL_C__) g_cclosure_marshal_BOOLEAN__FLAGS g_cclosure_marshal_STRING__OBJECT_POINTER g_cclosure_marshal_VOID__BOOLEAN @@ -21,17 +54,18 @@ g_cclosure_marshal_VOID__UINT g_cclosure_marshal_VOID__UINT_POINTER g_cclosure_marshal_VOID__ULONG g_cclosure_marshal_VOID__VOID +#endif +#endif + +#if IN_HEADER(__G_CLOSURE_H__) +#if IN_FILE(__G_CLOSURE_C__) g_cclosure_new -g_cclosure_new_object -g_cclosure_new_object_swap g_cclosure_new_swap g_closure_add_finalize_notifier g_closure_add_invalidate_notifier g_closure_add_marshal_guards -g_closure_get_type G_GNUC_CONST g_closure_invalidate g_closure_invoke -g_closure_new_object g_closure_new_simple g_closure_ref g_closure_remove_finalize_notifier @@ -40,6 +74,12 @@ g_closure_set_marshal g_closure_set_meta_marshal g_closure_sink g_closure_unref +g_signal_type_cclosure_new +#endif +#endif + +#if IN_HEADER(__G_ENUMS_H__) +#if IN_FILE(__G_ENUMS_C__) g_enum_complete_type_info g_enum_get_value g_enum_get_value_by_name @@ -50,9 +90,26 @@ g_flags_get_first_value g_flags_get_value_by_name g_flags_get_value_by_nick g_flags_register_static -g_gstring_get_type G_GNUC_CONST +g_value_set_enum +g_value_set_flags +g_value_get_enum +g_value_get_flags +#endif +#endif + +#if IN_HEADER(__G_SOURCECLOSURE_H__) +#if IN_FILE(__G_SOURCECLOSURE_C__) g_io_channel_get_type g_io_condition_get_type +g_source_set_closure +#endif +#endif + +#if IN_HEADER(__G_OBJECT_H__) +#if IN_FILE(__G_OBJECT_C__) +g_cclosure_new_object +g_cclosure_new_object_swap +g_closure_new_object g_object_add_weak_pointer g_object_class_find_property g_object_class_install_property @@ -90,6 +147,19 @@ g_object_unref g_object_watch_closure g_object_weak_ref g_object_weak_unref +g_value_get_object +g_value_set_object +g_value_dup_object +g_value_take_object +#ifndef G_DISABLE_DEPRECATED +g_value_set_object_take_ownership +#endif +g_signal_connect_object +#endif +#endif + +#if IN_HEADER(__G_PARAMSPECS_H__) +#if IN_FILE(__G_PARAMSPECS_C__) g_param_spec_boolean g_param_spec_boxed g_param_spec_char @@ -97,52 +167,106 @@ g_param_spec_double g_param_spec_enum g_param_spec_flags g_param_spec_float -g_param_spec_get_blurb -g_param_spec_get_name -g_param_spec_get_nick -g_param_spec_get_qdata -g_param_spec_get_redirect_target g_param_spec_int g_param_spec_int64 -g_param_spec_internal g_param_spec_long g_param_spec_object g_param_spec_override g_param_spec_param g_param_spec_pointer -g_param_spec_pool_insert -g_param_spec_pool_list -g_param_spec_pool_list_owned -g_param_spec_pool_lookup -g_param_spec_pool_new -g_param_spec_pool_remove -g_param_spec_ref -g_param_spec_set_qdata -g_param_spec_set_qdata_full -g_param_spec_sink -g_param_spec_steal_qdata g_param_spec_string g_param_spec_uchar g_param_spec_uint g_param_spec_uint64 g_param_spec_ulong g_param_spec_unichar -g_param_spec_unref g_param_spec_value_array +#endif +#endif + +#if IN_HEADER(__G_PARAM_H__) +#if IN_FILE(__G_PARAM_C__) +g_param_spec_get_blurb +g_param_spec_get_name +g_param_spec_get_nick +g_param_spec_get_redirect_target +g_param_spec_internal g_param_type_register_static +g_param_spec_ref +g_param_spec_unref +g_param_spec_sink +g_param_spec_steal_qdata +g_param_spec_set_qdata +g_param_spec_set_qdata_full +g_param_spec_get_qdata g_param_value_convert g_param_value_defaults g_param_values_cmp g_param_value_set_default g_param_value_validate +g_param_spec_pool_insert +g_param_spec_pool_list +g_param_spec_pool_list_owned +g_param_spec_pool_lookup +g_param_spec_pool_new +g_param_spec_pool_remove +g_value_get_param +g_value_set_param +g_value_dup_param +g_value_take_param +#ifndef G_DISABLE_DEPRECATED +g_value_set_param_take_ownership +#endif +#endif +#endif + +#if IN_HEADER(__G_VALUETYPES_H__) +#if IN_FILE(__G_VALUETYPES_C__) g_pointer_type_register_static +g_strdup_value_contents +g_value_set_boolean +g_value_set_char +g_value_set_double +g_value_set_float +g_value_set_int +g_value_set_int64 +g_value_set_long +g_value_set_pointer +g_value_set_static_string +g_value_set_string +#ifndef G_DISABLE_DEPRECATED +g_value_set_string_take_ownership +#endif +g_value_set_uchar +g_value_set_uint +g_value_set_uint64 +g_value_set_ulong +g_value_dup_string +g_value_get_boolean +g_value_get_char +g_value_get_double +g_value_get_float +g_value_get_int +g_value_get_int64 +g_value_get_long +g_value_get_pointer +g_value_get_string +g_value_get_uchar +g_value_get_uint +g_value_get_uint64 +g_value_get_ulong +g_value_take_string +#endif +#endif + +#if IN_HEADER(__G_SIGNAL_H__) +#if IN_FILE(__G_SIGNAL_C__) g_signal_accumulator_true_handled g_signal_add_emission_hook g_signal_chain_from_overridden g_signal_connect_closure g_signal_connect_closure_by_id g_signal_connect_data -g_signal_connect_object g_signal_emit g_signal_emit_by_name g_signal_emitv @@ -170,10 +294,11 @@ g_signal_query g_signal_remove_emission_hook g_signal_stop_emission g_signal_stop_emission_by_name -g_signal_type_cclosure_new -g_source_set_closure -g_strdup_value_contents -g_strv_get_type G_GNUC_CONST +#endif +#endif + +#if IN_HEADER(__G_TYPE_H__) +#if IN_FILE(__G_TYPE_C__) g_type_add_class_cache_func g_type_add_interface_check g_type_add_interface_dynamic @@ -215,24 +340,11 @@ g_type_interface_peek_parent g_type_interface_prerequisites g_type_interfaces g_type_is_a -g_type_module_add_interface -g_type_module_get_type G_GNUC_CONST -g_type_module_register_enum -g_type_module_register_flags -g_type_module_register_type -g_type_module_set_name -g_type_module_unuse -g_type_module_use g_type_name g_type_name_from_class g_type_name_from_instance g_type_next_base g_type_parent -g_type_plugin_complete_interface_info -g_type_plugin_complete_type_info -g_type_plugin_get_type G_GNUC_CONST -g_type_plugin_unuse -g_type_plugin_use g_type_qname g_type_query g_type_register_dynamic @@ -243,79 +355,63 @@ g_type_remove_interface_check g_type_set_qdata g_type_test_flags g_type_value_table_peek +#endif +#endif + +#if IN_HEADER(__G_TYPE_MODULE_H__) +#if IN_FILE(__G_TYPE_MODULE_C__) +g_type_module_add_interface +g_type_module_get_type G_GNUC_CONST +g_type_module_register_enum +g_type_module_register_flags +g_type_module_register_type +g_type_module_set_name +g_type_module_unuse +g_type_module_use +#endif +#endif + +#if IN_HEADER(__G_VALUE_ARRAY_H__) +#if IN_FILE(__G_VALUE_ARRAY_C__) g_value_array_append g_value_array_copy g_value_array_free g_value_array_get_nth -g_value_array_get_type G_GNUC_CONST g_value_array_insert g_value_array_new g_value_array_prepend g_value_array_remove g_value_array_sort g_value_array_sort_with_data +#endif +#endif + +#if IN_HEADER(__G_TYPE_PLUGIN_H__) +#if IN_FILE(__G_TYPE_PLUGIN_C__) +g_type_plugin_complete_interface_info +g_type_plugin_complete_type_info +g_type_plugin_get_type G_GNUC_CONST +g_type_plugin_unuse +g_type_plugin_use +#endif +#endif + +#if IN_HEADER(__G_VALUE_H__) +#if IN_FILE(__G_VALUE_C__) g_value_copy -g_value_dup_boxed -g_value_dup_object -g_value_dup_param -g_value_dup_string g_value_fits_pointer -g_value_get_boolean -g_value_get_boxed -g_value_get_char -g_value_get_double -g_value_get_enum -g_value_get_flags -g_value_get_float -g_value_get_int -g_value_get_int64 -g_value_get_long -g_value_get_object -g_value_get_param -g_value_get_pointer -g_value_get_string -g_value_get_type G_GNUC_CONST -g_value_get_uchar -g_value_get_uint -g_value_get_uint64 -g_value_get_ulong g_value_init g_value_peek_pointer g_value_register_transform_func g_value_reset -g_value_set_boolean -g_value_set_boxed -g_value_set_boxed_take_ownership -g_value_set_char -g_value_set_double -g_value_set_enum -g_value_set_flags -g_value_set_float -g_value_set_instance -g_value_set_int -g_value_set_int64 -g_value_set_long -g_value_set_object -g_value_set_object_take_ownership -g_value_set_param -g_value_set_param_take_ownership -g_value_set_pointer -g_value_set_static_boxed -g_value_set_static_string -g_value_set_string -g_value_set_string_take_ownership -g_value_set_uchar -g_value_set_uint -g_value_set_uint64 -g_value_set_ulong -g_value_take_boxed -g_value_take_object -g_value_take_param -g_value_take_string g_value_transform g_value_type_compatible g_value_type_transformable g_value_unset +g_value_set_instance +#endif +#endif + #ifdef INCLUDE_VARIABLES g_param_spec_types #endif diff --git a/gobject/gobjectnotifyqueue.c b/gobject/gobjectnotifyqueue.c index c816a86f..e02e6d05 100644 --- a/gobject/gobjectnotifyqueue.c +++ b/gobject/gobjectnotifyqueue.c @@ -166,4 +166,4 @@ g_object_notify_queue_from_object (GObject *object, G_END_DECLS -#endif /* __G_OBJECT_H__ */ +#endif /* __G_NOTIFY_H__ */ diff --git a/gobject/gparam.c b/gobject/gparam.c index 282b8a4b..8aecc494 100644 --- a/gobject/gparam.c +++ b/gobject/gparam.c @@ -21,11 +21,11 @@ * MT safe */ -#include "gobjectalias.h" #include "gparam.h" #include "gparamspecs.h" #include "gvaluecollector.h" +#include "gobjectalias.h" #include @@ -1109,3 +1109,6 @@ g_value_dup_param (const GValue *value) return value->data[0].v_pointer ? g_param_spec_ref (value->data[0].v_pointer) : NULL; } + +#define __G_PARAM_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c index 7e40f7e9..d3f7264c 100644 --- a/gobject/gparamspecs.c +++ b/gobject/gparamspecs.c @@ -23,11 +23,11 @@ #include "../config.h" -#include "gobjectalias.h" #include "gparamspecs.h" #include "gvaluecollector.h" #include "gvaluearray.h" +#include "gobjectalias.h" #include #define G_FLOAT_EPSILON (1e-30) @@ -1928,3 +1928,6 @@ g_param_spec_override (const gchar *name, return pspec; } + +#define __G_PARAMSPECS_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gsignal.c b/gobject/gsignal.c index ef8f3fb4..2ecb3fc0 100644 --- a/gobject/gsignal.c +++ b/gobject/gsignal.c @@ -26,12 +26,15 @@ #include -#include "gobjectalias.h" #include "gsignal.h" + #include "gbsearcharray.h" #include "gvaluecollector.h" #include "gvaluetypes.h" #include "gboxed.h" + +#include "gobjectalias.h" + #include #include @@ -2655,3 +2658,6 @@ g_signal_accumulator_true_handled (GSignalInvocationHint *ihint, #include "gobject.h" #include "genums.h" #include "gmarshal.c" + +#define __G_SIGNAL_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gsourceclosure.c b/gobject/gsourceclosure.c index a733deb1..8f43afb7 100644 --- a/gobject/gsourceclosure.c +++ b/gobject/gsourceclosure.c @@ -17,13 +17,13 @@ * Boston, MA 02111-1307, USA. */ -#include "gobjectalias.h" #include "gsourceclosure.h" #include "gboxed.h" #include "genums.h" #include "gmarshal.h" #include "gvalue.h" #include "gvaluetypes.h" +#include "gobjectalias.h" GType g_io_channel_get_type (void) @@ -190,3 +190,6 @@ g_source_set_closure (GSource *source, g_closure_set_marshal (closure, marshal); } } + +#define __G_SOURCECLOSURE_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gtype.c b/gobject/gtype.c index 9a5753b0..2f5303c8 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -17,8 +17,8 @@ * Boston, MA 02111-1307, USA. */ #include -#include "gobjectalias.h" #include "gtype.h" +#include "gobjectalias.h" /* * MT safe @@ -3580,3 +3580,6 @@ g_type_instance_get_private (GTypeInstance *instance, return G_STRUCT_MEMBER_P (instance, offset); } + +#define __G_TYPE_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gtypemodule.c b/gobject/gtypemodule.c index 4ecb6ca0..22e86f33 100644 --- a/gobject/gtypemodule.c +++ b/gobject/gtypemodule.c @@ -19,9 +19,9 @@ #include -#include "gobjectalias.h" #include "gtypeplugin.h" #include "gtypemodule.h" +#include "gobjectalias.h" typedef struct _ModuleTypeInfo ModuleTypeInfo; typedef struct _ModuleInterfaceInfo ModuleInterfaceInfo; @@ -424,3 +424,7 @@ g_type_module_register_flags (GTypeModule *module, return g_type_module_register_type (G_TYPE_MODULE (module), G_TYPE_FLAGS, name, &flags_type_info, 0); } + + +#define __G_TYPE_MODULE_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gtypeplugin.c b/gobject/gtypeplugin.c index 99665cc3..bc1e7c0e 100644 --- a/gobject/gtypeplugin.c +++ b/gobject/gtypeplugin.c @@ -16,8 +16,8 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ -#include "gobjectalias.h" #include "gtypeplugin.h" +#include "gobjectalias.h" @@ -99,3 +99,6 @@ g_type_plugin_complete_interface_info (GTypePlugin *plugin, interface_type, info); } + +#define __G_TYPE_PLUGIN_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gvalue.c b/gobject/gvalue.c index 680122f9..f181ac2c 100644 --- a/gobject/gvalue.c +++ b/gobject/gvalue.c @@ -23,10 +23,10 @@ #include -#include "gobjectalias.h" #include "gvalue.h" #include "gvaluecollector.h" #include "gbsearcharray.h" +#include "gobjectalias.h" /* --- typedefs & structures --- */ @@ -359,3 +359,6 @@ g_value_transform (const GValue *src_value, } return FALSE; } + +#define __G_VALUE_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gvaluearray.c b/gobject/gvaluearray.c index 54e0e11e..3db5d2e0 100644 --- a/gobject/gvaluearray.c +++ b/gobject/gvaluearray.c @@ -23,8 +23,8 @@ #include -#include "gobjectalias.h" #include "gvaluearray.h" +#include "gobjectalias.h" #include #include /* qsort() */ @@ -228,3 +228,6 @@ g_value_array_sort_with_data (GValueArray *value_array, compare_func, user_data); return value_array; } + +#define __G_VALUE_ARRAY_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/gvaluetransform.c b/gobject/gvaluetransform.c index 94f1f0bc..d6a4e3d5 100644 --- a/gobject/gvaluetransform.c +++ b/gobject/gvaluetransform.c @@ -18,9 +18,9 @@ */ #include -#include "gobjectalias.h" #include "gvalue.h" #include "genums.h" +#include "gobjectalias.h" /* same type transforms diff --git a/gobject/gvaluetypes.c b/gobject/gvaluetypes.c index 3b73876d..48d332ac 100644 --- a/gobject/gvaluetypes.c +++ b/gobject/gvaluetypes.c @@ -21,10 +21,10 @@ * MT safe */ -#include "gobjectalias.h" #include "gvaluetypes.h" #include "gvaluecollector.h" +#include "gobjectalias.h" #include #include /* qsort() */ @@ -906,3 +906,5 @@ g_pointer_type_register_static (const gchar *name) return type; } +#define __G_VALUETYPES_C__ +#include "gobjectaliasdef.c" diff --git a/gobject/makegobjectalias.pl b/gobject/makegobjectalias.pl index 1eb2cb32..9094222b 100755 --- a/gobject/makegobjectalias.pl +++ b/gobject/makegobjectalias.pl @@ -1,5 +1,12 @@ #!/usr/bin/perl -w +my $do_def = 0; + +if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) { + shift; + $do_def = 1; +} + print <) { next; } - if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS)/) + if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/) { $in_skipped_section = 1; } @@ -65,13 +83,20 @@ while (<>) { next; } - if ($_ =~ /^\#ifdef\s+G/) + if ($_ =~ /^\#ifn?def\s+G/) { print $_; next; } + if ($_ =~ /^\#if.*(IN_FILE|IN_HEADER)/) + { + print $_; + + next; + } + chop; my $str = $_; my @words; @@ -87,23 +112,25 @@ while (<>) { $attributes = "$attributes $word" unless $word eq "PRIVATE"; } - print <