Commit Graph

63 Commits

Author SHA1 Message Date
Colin Walters
00fb846ad8 Handle both .la and .so names; this works better in the uninstalled
2008-08-26  Colin Walters  <walters@verbum.org>

	* girepository/gtypelib.c (_g_typelib_init): Handle
	both .la and .so names; this works better in the
	uninstalled library case.

svn path=/trunk/; revision=498
2008-08-26 20:04:38 +00:00
Colin Walters
777cc726a4 Parse new implements syntax, drop gapi one. Update. Generate new syntax.
2008-08-25  Colin Walters  <walters@verbum.org>

	* girepository/girparser.c: Parse new implements
	syntax, drop gapi one.
	* tests/object.gir: Update.
	* tools/generate.c: Generate new syntax.

svn path=/trunk/; revision=492
2008-08-25 15:22:39 +00:00
Colin Walters
92b476b8c1 Don't open shared library here; we already do it in gtypelib.c.
2008-08-24  Colin Walters  <walters@verbum.org>

	* girepository/girepository.c (g_irepository_require):
	Don't open shared library here; we already do it
	in gtypelib.c.

svn path=/trunk/; revision=483
2008-08-24 16:55:07 +00:00
Colin Walters
1ebc6cfb7a Add context stack so when we get an error we can print out nicely where it
2008-08-24  Colin Walters  <walters@verbum.org>

	* girepository/gtypelib.c: Add context stack so
	when we get an error we can print out nicely
	where it is.

svn path=/trunk/; revision=482
2008-08-24 16:51:43 +00:00
Johan Dahlin
ed13aae5f2 Refactor a couple of parsing functions to be simpler to follow. Avoid huge
2008-08-24  Johan Dahlin  <johan@gnome.org>

    * girepository/girparser.c (start_glib_boxed), (start_function),
    (start_field), (start_alias):
    Refactor a couple of parsing functions to be simpler to follow.
    Avoid huge ifs.


svn path=/trunk/; revision=481
2008-08-24 11:01:44 +00:00
Johan Dahlin
78f4434ef6 Remove left-over code, checking type of function.
2008-08-24  Johan Dahlin  <johan@gnome.org>

    * girepository/girparser.c (start_function):
    Remove left-over code, checking type of function.


svn path=/trunk/; revision=480
2008-08-24 10:43:02 +00:00
Colin Walters
88f221c38e Check constructor returns
svn path=/trunk/; revision=477
2008-08-23 21:30:09 +00:00
Colin Walters
a2678afc9c Add debug bit, tweak to use GUINT as correct.
svn path=/trunk/; revision=476
2008-08-23 21:30:06 +00:00
Colin Walters
5daf51a580 Redo signature_offset to be cleaner and correct for vfuncs
svn path=/trunk/; revision=475
2008-08-23 21:30:01 +00:00
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