Commit Graph

54 Commits

Author SHA1 Message Date
Colin Walters
4c2a09226b Remove duplicate start_boxed.
svn path=/trunk/; revision=474
2008-08-23 21:29:58 +00:00
Colin Walters
6d34368cac Another debug print
svn path=/trunk/; revision=471
2008-08-23 16:46:58 +00:00
Colin Walters
20b10e4542 Add debug print, fix includes
svn path=/trunk/; revision=470
2008-08-23 16:36:15 +00:00
Colin Walters
ca6a30f98a Ignore <include>. Parse them. Generate them. Process <include>
2008-08-22  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c: Ignore <include>.
	* giscanner/girparser.py: Parse them.
	* giscanner/girwriter.py: Generate them.
	* giscanner/transformer.py: Process <include>
	recursively.  Don't require full path for
	includes, look in {$XDG_DATA_DIRS}/gir.
	* tools/g-ir-scanner: Pass through includes.
	* Makefile.am: Remove extra --include
	args for scanner.
	* *-expected.gir: Add expected includes.

svn path=/trunk/; revision=467
2008-08-23 16:11:01 +00:00
Colin Walters
71aacda759 Don't hardcode integers, use GITypeTag.
2008-08-22  Colin Walters  <walters@verbum.org>

	* girepository/girnode.c: Don't hardcode integers,
	use GITypeTag.

svn path=/trunk/; revision=465
2008-08-22 22:15:28 +00:00
Colin Walters
e4c8517aac Pass through recursive types. Avoid overwriting errors. Always write the
2008-08-22  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c: Pass through
	recursive types.  Avoid overwriting errors.
	* giscanner/xmlwriter.py: Always write the
	XML header.
	* tests/*.gir: Adjust.
	* tests/scanner/Makefile.am: Build typelibs,
	and generate XML from those.  Once we
	have a good diff mechanism...
	* tests/scanner/*-expected.gir: Add XML
	header.
	* tools/g-ir-scanner: Accept --typelib-xml
	option.
	* tools/generate.c: Better defaults for transfer.

svn path=/trunk/; revision=457
2008-08-22 20:05:23 +00:00
Johan Dahlin
bfb52af903 Plug memory leak and avoid using freed memory. Resolve the whole module
2008-08-21  Johan Dahlin  <johan@gnome.org>

    * girepository/girepository.c (g_irepository_require):
    Plug memory leak and avoid using freed memory.
    Resolve the whole module path, here as well.


svn path=/trunk/; revision=441
2008-08-21 16:38:03 +00:00
Colin Walters
c66c06f048 Revert change to increment header_size; we do that in write_string.
2008-08-21  Colin Walters  <walters@verbum.org>

	* girepository/girmodule.c (g_ir_module_build_typelib):
	Revert change to increment header_size; we do that in
	write_string.

svn path=/trunk/; revision=440
2008-08-21 16:25:42 +00:00
Colin Walters
60adefcef2 Tweak to use UINT instead of INT. Not likely to matter. Add to
2008-08-21  Colin Walters  <walters@verbum.org>

	* girepository/girnode.c (write_string): Tweak to
	use UINT instead of INT.  Not likely to matter.
	* girepository/girmodule.c (g_ir_module_build_typelib):
	Add to header_offset as well for header strings
	to match what write_string does.
	* girepository/gtypelib.c: Replace is_name with
	validate_name, which more strongly validates and
	handles errors in a better way.  Update all callers.
	* giscanner/glibtransformer.py: Handle constructors
	better.

svn path=/trunk/; revision=439
2008-08-21 16:15:55 +00:00
Johan Dahlin
a47d659cd1 Use g_module_build_path to resolve the shlib name
2008-08-21  Johan Dahlin  <johan@gnome.org>

    * girepository/gtypelib.c (_g_typelib_init):
    Use g_module_build_path to resolve the shlib name


svn path=/trunk/; revision=437
2008-08-21 14:21:00 +00:00
Colin Walters
3011ce4539 Fix one small leak in error case.
2008-08-21  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c (g_irepository_require):
	Fix one small leak in error case.

svn path=/trunk/; revision=434
2008-08-21 13:26:53 +00:00
Johan Dahlin
9152ea35ab Remove compilation warnings
2008-08-21  Johan Dahlin  <johan@gnome.org>

    * girepository/girparser.c (resolve_aliases):
    Remove compilation warnings


svn path=/trunk/; revision=431
2008-08-21 08:20:07 +00:00
Johan Dahlin
790ba0d7b0 Rewrap and fix double free bug by leaking a bit.
2008-08-21  Johan Dahlin  <johan@gnome.org>

    * girepository/girepository.c (g_irepository_require):
    Rewrap and fix double free bug by leaking a bit.


svn path=/trunk/; revision=430
2008-08-21 06:47:49 +00:00
Colin Walters
c09cf789a0 Add new function g_irepository_get_typelib_path which tells us from where
2008-08-20  Colin Walters  <walters@verbum.org>

	* girepository/girepository.c: Add new function
	g_irepository_get_typelib_path which tells
	us from where we loaded a namespace.

svn path=/trunk/; revision=429
2008-08-21 03:06:13 +00:00
Colin Walters
ae74722007 Calculate size correctly, avoid use-after-free.
2008-08-20  Colin Walters  <walters@verbum.org>

	* girepository/girmodule.c (g_ir_module_build_typelib):
	Calculate size correctly, avoid use-after-free.

svn path=/trunk/; revision=427
2008-08-21 00:42:23 +00:00
Colin Walters
61ae81c9c8 Remove g_irepository_register_file in favor of g_irepository_require.
2008-08-20  Colin Walters  <walters@verbum.org>

	* girepository/girepository.c: Remove
	g_irepository_register_file in favor of
	g_irepository_require.  There are two
	possible deployment scenarios for typelibs:
	First, separate in $DATADIR/gitypelibs/.  Second,
	they may be embedded in shlibs.  However since
	the first is now the normal case, the API is
	optimized around it.

	Refactor internals to look up typelibs for
	namespaces just-in-time, but we expect
	consumers to call g_irepository_require.

	Also, add some docs.  No one has died from that
	before.
	* gir/Makefile.am: Need --library for glib.
	* giscanner/girwriter.py: Write out shared-library.
	* tools/g-ir-writer: Take the first --library
	argument as the target of shared-library.  In
	the future we should make this nicer with pkg-config
	probably.

svn path=/trunk/; revision=426
2008-08-20 23:56:40 +00:00
Colin Walters
4de606f07d And parse them.
2008-08-20  Colin Walters  <walters@verbum.org>

	* girepository/girparser.py: And parse them.

svn path=/trunk/; revision=425
2008-08-20 19:57:10 +00:00
Colin Walters
89e881b47b Rename .gir files using GI namespace. Use XDG_DATA_DIRS for looking up
2008-08-20  Colin Walters  <walters@verbum.org>

	* gir/Makefile.am: Rename .gir files using GI namespace.
	* girepository/girepository.c: Use XDG_DATA_DIRS for
	looking up typelibs.  Also typelibs are now suffixed
	with .typelib.
	* tests/invoke/Makefile.am: Only use metadata.
	* girepository/Makefile.am: Remove unnecessary include.
	* tests/scanner/Makefile.am: Update using GI namespaces
	for scanner includes.

svn path=/trunk/; revision=422
2008-08-20 19:17:14 +00:00
Colin Walters
e47f68925e Avoid alias infloops.
2008-08-20  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c: Avoid alias infloops.

svn path=/trunk/; revision=420
2008-08-20 19:01:20 +00:00
Colin Walters
abcebee79f Union field parsing
2008-08-20  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c: Parse union fields.

svn path=/trunk/; revision=416
2008-08-20 15:05:46 +00:00
Johan Dahlin
b3312fb83f Make enum serializing functions public. Clean up some whitespace.
2008-08-18  Johan Dahlin  <johan@gnome.org>

    * girepository/girepository.c (g_type_tag_to_string):
    * girepository/girepository.h:
    * girepository/girnode.c (g_ir_node_get_full_size_internal),
    (find_entry_node):
    * girepository/girnode.h:
    Make enum serializing functions public. Clean up some whitespace.


svn path=/trunk/; revision=394
2008-08-18 08:52:47 +00:00
Johan Dahlin
fc01170517 Remove resolve_possible_typedefs, it was unused. Allow multiple enum
2008-08-17  Johan Dahlin  <johan@gnome.org>

    * girepository/gtypelib.c (validate_enum_blob):
    * giscanner/glibtransformer.py:
    * giscanner/transformer.py:
    Remove resolve_possible_typedefs, it was unused.
    Allow multiple enum values of the sample value in an enum,
    since it's actually pretty common.
    Register enums so they can be resolved too.


svn path=/trunk/; revision=389
2008-08-16 22:26:55 +00:00
Johan Dahlin
bf5761db23 make it compile again...
svn path=/trunk/; revision=388
2008-08-16 21:57:59 +00:00
Johan Dahlin
5241ccb843 Reorder
svn path=/trunk/; revision=387
2008-08-16 21:55:06 +00:00
Johan Dahlin
27314af58e Clear up constant parsing
2008-08-14  Johan Dahlin  <johan@gnome.org>

    * girepository/girparser.c (start_field), (start_constant),
    (start_type), (end_element_handler):
    Clear up constant parsing

    * tests/object.gir:
    Update

    * tools/generate.c (write_callable_info), (write_function_info),
    (write_callback_info), (write_constant_info), (write_signal_info),
    (write_vfunc_info), (write_property_info), (write_object_info),
    (write_interface_info):
    Constants/Signals are handled now.


svn path=/trunk/; revision=377
2008-08-14 19:32:26 +00:00
Johan Dahlin
698bcf0af5 Don't require c:type. Test boxed.gir Update, remove parts we don't support
2008-08-14  Johan Dahlin  <johan@gnome.org>

    * girepository/girparser.c (start_type):
    Don't require c:type.
    * tests/Makefile.am:
    Test boxed.gir
    * tests/boxed.gir:
    Update, remove parts we don't support yet
    * tests/roundtrips.sh:
    Remove
    * tools/generate.c (write_type_info), (write_field_info),
    (write_callable_info), (write_struct_info):
    Make it emit proper gir.


svn path=/trunk/; revision=376
2008-08-14 19:07:34 +00:00
Colin Walters
c368516ae4 Comment data structures. Also squash pointers in resolve_type_name to
2008-08-14  Colin Walters  <walters@verbum.org>

	* giscanner/transformer.py: Comment data structures.
	Also squash pointers in resolve_type_name to correspond
	with what we do for params.
	* giscanner/glibtransformer.py: Print warnings in more
	situations.  Rework checks for method/constructor to
	look up in our GType database instead of just checking
	for *.   Avoid generating <record> for GObject which
	duplicate the <class>.
	* gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
	in here.


svn path=/trunk/; revision=373
2008-08-14 16:09:06 +00:00
Johan Dahlin
3e28196a98 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
2008-08-13  Johan Dahlin  <johan@gnome.org>

    * girepository/girnode.c (g_ir_node_get_full_size_internal):
    * girepository/girparser.c (start_class):
    * giscanner/glibtransformer.py:
    Allow get_type to be None, set a get_type for GInitiallyUnowned too.


svn path=/trunk/; revision=362
2008-08-13 21:44:38 +00:00
Colin Walters
de7d01898e Record typedefs as <alias> elements. Also attempt to look up types in
2008-08-12  Colin Walters  <walters@verbum.org>

	* giscanner/transformer.py: Record typedefs as <alias> elements.
	  Also attempt to look up types in external namespaces.
	* giscanner/girwriter.py: Write them.
	* giscanner/glibtransformer.py: Rework resolver using real instanceof
	checks.  Resolve interface methods and properties.
	* tests/scanner/foo-object.h: Add a method with typedef.
	* tests/scanner/Foo-expected.gir: Update.
	* girepository/girnode.c: Debug tweaks.
	* girepository/girparser.c: Make a first pass through the XML where we
	record all the aliases.  This lets us resolve them as we go through the
	second pass.
	* gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
	from gir-repository.



svn path=/trunk/; revision=355
2008-08-13 16:10:09 +00:00
Colin Walters
8c6c262f22 Handle 'any'. Add test for void *.
2008-08-12  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c: Handle 'any'.
	* tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
	Add test for void *.


svn path=/trunk/; revision=351
2008-08-12 18:49:16 +00:00
Colin Walters
0ed07b5934 Remove usage of (GAPI-oriented) TypeTag in favor of GITypeTag from
2008-08-12  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c, girepository/gtypelib.c,
	girepository/gtypelib.h, girepository/girnode.c:
	Remove usage of (GAPI-oriented) TypeTag in favor of
	GITypeTag from girepository.h.



svn path=/trunk/; revision=347
2008-08-12 15:34:27 +00:00
Johan Dahlin
33455bc3ef Rename metadata to typelib in variable names, comments and apis.
2008-08-09  Johan Dahlin  <johan@gnome.org>

    * *.[ch]:
    Rename metadata to typelib in variable names,
    comments and apis.


svn path=/trunk/; revision=339
2008-08-09 12:55:32 +00:00
Johan Dahlin
282a6c644e Move shared *.[ch] files to girepository from tools
2008-08-09  Johan Dahlin  <johan@gnome.org>

    * girepository/Makefile.am:
    * tools/Makefile.am:
    * tools/girmodule.c:
    * tools/girmodule.h:
    * tools/girnode.c:
    * tools/girnode.h:
    * tools/girparser.c:
    * tools/girparser.h:
    * tools/girwriter.c:
    * tools/girwriter.h:
    Move shared *.[ch] files to girepository from tools


svn path=/trunk/; revision=337
2008-08-09 12:46:48 +00:00
Johan Dahlin
e1c3498df8 Merge in the gir-compiler branch. Thanks to Philip and Colin for their
2008-08-08  Johan Dahlin  <johan@gnome.org>

    * girepository/gtypelib.c (validate_header):
    * girepository/gtypelib.h:
    * giscanner/ast.py:
    * giscanner/girwriter.py:
    * giscanner/sourcescanner.c (gi_source_symbol_ref),
    (gi_source_symbol_unref):
    * tests/array.test:
    * tests/boxed.test:
    * tests/constant.test:
    * tests/enum.test:
    * tests/errors.test:
    * tests/function.test:
    * tests/gobject.test:
    * tests/interface.test:
    * tests/invoke/Makefile.am:
    * tests/invoke/testfns.xml:
    * tests/object.test:
    * tests/parser/Makefile.am:
    * tests/roundtrips.sh:
    * tests/struct.test:
    * tests/types.test:
    * tests/union.test:
    * tests/xref1.test:
    * tests/xref2.test:
    * tools/Makefile.am:
    * tools/compiler.c (main):
    * tools/generate.c (write_callable_info), (write_function_info),
    (write_repository):
    * tools/gidlmodule.c:
    * tools/gidlmodule.h:
    * tools/gidlnode.c:
    * tools/gidlnode.h:
    * tools/gidlparser.c:
    * tools/gidlparser.h:
    * tools/gidlwriter.c:
    * tools/gidlwriter.h:
    * tools/scanner.c (create_node_from_gtype),
    (create_node_from_ctype), (g_igenerator_process_properties),
    (g_igenerator_process_signals), (g_igenerator_create_object),
    (g_igenerator_create_interface), (g_igenerator_create_boxed),
    (g_igenerator_create_enum), (g_igenerator_create_flags),
    (g_igenerator_process_function_symbol),
    (g_igenerator_process_unregistered_struct_typedef),
    (g_igenerator_process_struct_typedef),
    (g_igenerator_process_union_typedef),
    (g_igenerator_process_enum_typedef),
    (g_igenerator_process_function_typedef),
    (g_igenerator_process_constant), (g_igenerator_process_symbols),
    (g_igenerator_add_module), (g_igenerator_add_include_idl):
    Merge in the gir-compiler branch.
    Thanks to Philip and Colin for their help.


svn path=/trunk/; revision=325
2008-08-08 19:09:17 +00:00
Colin Walters
abf9c86431 Add environment variable G_IREPOSITORY_VERBOSE so we can print out what
2008-07-24  Colin Walters  <walters@verbum.org>

	* girepository/girepository.c (g_irepository_register): Add
	environment variable G_IREPOSITORY_VERBOSE so we can print
	out what we're doing.
	* girepository/girepository.c (g_irepository_register_file): 
	Add GError error message to g_debug call.


svn path=/trunk/; revision=296
2008-07-24 19:20:40 +00:00
Philip Van Hoof
776ee5f79e tools/gidlnode.c
2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>

        * girepository/girepository.c:
        * girepository/gtypelib.c:
        * girepository/ginfo.c:
        * girepository/ginvoke.c:
        * girepository/girepository.h:
        * girepository/gtypelib.h:
        * girepository/gmetadata.c:
        * girepository/Makefile.am:
        * girepository/gmetadata.h:
        * tools/compiler.c:
        * tools/gidlmodule.c:
        * tools/gidlnode.c
        * tools/generate.c:
        * tools/gidlmodule.h:
        * tools/gidlparser.c:

        Renamed GMetadata to GTypelib


svn path=/trunk/; revision=288
2008-06-08 14:37:30 +00:00
Johan Dahlin
df21818925 Rename pkg-config name to gobject-introspection-1.0, Do not installed
2008-05-31  Johan Dahlin  <jdahlin@async.com.br>

    * Makefile.am:
    * configure.ac:
    * girepository/Makefile.am:
    * giscanner/transformer.py:
    * gobject-introspection-1.0.pc.in:
    * gobject-introspection.pc.in:
    * tools/Makefile.am:

    Rename pkg-config name to gobject-introspection-1.0,
    Do not installed anything which is not using the gir format.
    Disable compililation the old C scanner, but still keep the source
    until all the remaning functionallity has been ported.


svn path=/trunk/; revision=277
2008-05-31 20:49:42 +00:00
Havoc Pennington
624ac67933 If a symbol is not in metadata->module, look for it in the global module,
2008-04-22  Havoc Pennington  <hp@pobox.com>

	* girepository/ginvoke.c (g_function_info_invoke): If a symbol is
	not in metadata->module, look for it in the global module, in case
	some other object or the app itself provides the symbol.


svn path=/trunk/; revision=221
2008-04-23 01:24:57 +00:00
Havoc Pennington
81f5d90cd5 hack to avoid dlopening a library that is already in the main app, by
2008-04-22  Havoc Pennington  <hp@pobox.com>

	* girepository/gmetadata.c (_g_metadata_init): hack to avoid
 	dlopening a library that is already in the main app, by checking
	whether one of the lib's symbols is already loaded.


svn path=/trunk/; revision=220
2008-04-23 01:17:24 +00:00
Havoc Pennington
0ed924f676 Use interface_blob_size not object_blob_size to compute offset.
2008-04-22  Havoc Pennington  <hp@pobox.com>

	* girepository/ginfo.c (g_interface_info_find_method):
	Use interface_blob_size not object_blob_size to compute offset.


svn path=/trunk/; revision=218
2008-04-23 01:07:05 +00:00
Havoc Pennington
54b6ec03fb remove G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
2008-04-22  Havoc Pennington  <hp@pobox.com>

	* girepository/gmetadata.c (_g_metadata_init): remove
	G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
	(Glade and Clutter for example) rely on being loaded globally.


svn path=/trunk/; revision=217
2008-04-23 01:04:43 +00:00
Havoc Pennington
db7b378221 new function to get the GType given a RegisteredTypeInfo
2008-04-22  Havoc Pennington  <hp@pobox.com>

 	* girepository/ginfo.c (g_registered_type_info_get_g_type): new
	function to get the GType given a RegisteredTypeInfo


svn path=/trunk/; revision=216
2008-04-23 00:57:48 +00:00
Johan Dahlin
4ff71171a9 Revert revisions 157,149-148,136-129 and 120. Move back to using
2008-04-22  Johan Dahlin  <johan@gnome.org>

    * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
    (g_type_info_is_pointer), (g_type_info_get_tag),
    (g_type_info_get_param_type), (g_type_info_get_interface),
    (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
    (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
    (g_error_domain_info_get_codes), (g_enum_info_get_value),
    (g_object_info_get_interface), (g_object_info_get_field),
    (g_interface_info_get_prerequisite),
    (g_signal_info_get_class_closure), (g_constant_info_get_value):
    * girepository/ginvoke.c (get_ffi_type):
    * girepository/girepository.h:
    * girepository/gmetadata.c (g_metadata_get_dir_entry),
    (g_metadata_check_sanity), (validate_header),
    (validate_array_type_blob), (validate_iface_type_blob),
    (validate_param_type_blob), (validate_error_type_blob),
    (validate_type_blob), (validate_constant_blob),
    (validate_struct_blob), (validate_enum_blob):
    * girepository/gmetadata.h:
    * tests/Makefile.am:
    * tests/invoke/Makefile.am:
    * tests/invoke/invoke.c (main):
    * tests/roundtrips.sh:
    * tools/Makefile.am:
    * tools/compiler.c (format_output), (write_out_metadata), (main):
    * tools/generate.c (write_type_name), (write_type_info),
    (write_constant_value), (write_enum_info), (load_metadata), (main):
    * tools/gidlcompilercontext.c:
    * tools/gidlcompilercontext.h:
    * tools/gidlcompilerentrynode.c:
    * tools/gidlcompilerentrynode.h:
    * tools/gidlcompilertypenode.c:
    * tools/gidlcompilertypenode.h:
    * tools/gidlmodule.c (g_idl_module_build_metadata):
    * tools/gidlmodule.h:
    * tools/gidlnode.c (init_stats), (dump_stats),
    (g_idl_node_get_size), (g_idl_node_get_full_size),
    (g_idl_node_cmp), (g_idl_node_can_have_member),
    (g_idl_node_add_member), (g_idl_node_param_direction_string),
    (parse_int_value), (parse_uint_value), (parse_float_value),
    (parse_boolean_value), (find_entry_node), (find_entry),
    (serialize_type), (g_idl_node_build_metadata), (write_string):
    * tools/gidlnode.h:
    * tools/gidlparser.c (parse_type_internal):
    * tools/quote-file.sh:
    Revert revisions 157,149-148,136-129 and 120.
    Move back to using g-idl-generate to generate the metadata and
    avoids dependency on a c compiler.


svn path=/trunk/; revision=214
2008-04-22 22:48:16 +00:00
Mark Doffman
e8fa684588 girepository/ginfo.c tools/generate.c
2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>

    * girepository/ginfo.c
    * tools/generate.c

    Change the way that external references with no namespace
    are dealt with. External references with no namespace
    are placed into the XML as-if they are a local reference.
    This is temporary, but helps with roundtrip tests.

WARNING: This commit does not compile. It is a partial change.

svn path=/trunk/; revision=134
2008-03-10 17:47:26 +00:00
Mark Doffman
7cd41630af girepository/ginfo.c
2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>

    * girepository/ginfo.c

      Add the ability to get the value of a constant of
      type TYPE_TAG_SYMBOL. In the case of a symbol the value
      is provided as a string.

      This would deal properly with:
      typedef char* random;
      const random = "A string";

WARNING: This commit does not compile. It is a partial change.

svn path=/trunk/; revision=133
2008-03-10 17:47:24 +00:00
Mark Doffman
4ab667b160 girepository/ginfo.c girepository/girepository.h tools/generate.c
2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>

    * girepository/ginfo.c
    * girepository/girepository.h
    * tools/generate.c

      Add a function to check if an enum is registered or not.
      Previously anything testing this relied on the g-type
      string offset having a value of 0.

    * girepository/gmetadata.c
    * girepository/gmetadata.h
    * tools/generate.c

      Remove unneccesary or erroneous checks. There were two
      metadata validation checks which made sure that the blob
      sizes were the same as some magic numbers compiled into the code.
      This is wrong as it breaks any forwards compatibility that may
      be possible.

      Checks were also present that made sure that unregistered type
      blobs had a value of 0 in the g-type offset field. This is
      unneccessary. If a type blob is unregistered then any value
      in its g-type field is simply invalid.

WARNING: This commit does not compile. It is a partial change.

svn path=/trunk/; revision=132
2008-03-10 17:47:20 +00:00
Mark Doffman
0f2b1089ad girepository/ginfo.c girepository/gmetadata.c girepository/gmetadata.h
2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>

        * girepository/ginfo.c
        * girepository/gmetadata.c
        * girepository/gmetadata.h

          Change the metadata format to have a standard header
          for all the type blobs. Merge the SimpleTypeBlob
          and InterfaceTypeBlob into a union. A union of these
          two blobs existed previously but was not explicit
          in the metadata format.

WARNING: This commit does not compile. It is a partial change.

svn path=/trunk/; revision=131
2008-03-10 17:46:58 +00:00
Mark Doffman
9713aa96d7 tools/gidlcompilercontext.c tools/gidlcompilercontext.h
2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>

    * tools/gidlcompilercontext.c
    * tools/gidlcompilercontext.h
    * tools/gidlcompilerentrynode.c
    * tools/gidlcompilerentrynode.h
    * tools/gidlcompilertypenode.c
    * tools/gidlcompilertypenode.h

    Add code to compile a tree of GIdlNodes to
    a 'C' struct representing the metadata.
    This is to aid cross-compiling. Previously
    the g-idl-compiler created a binary blob with
    data written in the byte order and alignment
    of the tool rather than the intended target.

    Cleaned up and improved by Johan and Robert :-)

WARNING: This commit does not compile. It is a partial change.

svn path=/trunk/; revision=130
2008-03-10 17:45:59 +00:00
Mark Doffman
d349902ce6 girepository/ginvoke.c girepository/girepository.h
2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>

    * girepository/ginvoke.c
    * girepository/girepository.h
    * girepository/gmetadata.c
    * girepository/gmetadata.h
    * tools/generate.c
    * tools/gidlparser.c

      Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
      to avoid confusion with the interface blob.

    * tools/generate.c
    * tools/gidlparser.c

      Remove magic numbers and replace with type-tag
      enumeration symbols.

    * girepository/gmetadata.c
      Add validate declaration.

WARNING: This commit does not compile. It is a partial change.

svn path=/trunk/; revision=129
2008-03-10 17:44:06 +00:00
Havoc Pennington
2fb6877346 Take advantage of a libffi.pc if one exists, as it does on Fedora 8. Make
2008-03-05  Havoc Pennington  <hp@redhat.com>

	* configure.ac: Take advantage of a libffi.pc if one exists, as it
	does on Fedora 8. Make libffi a hard requirement, since it was in
	practice anyway (was not really conditional in the code or
	makefile, only in configure).


svn path=/trunk/; revision=121
2008-03-05 17:10:28 +00:00