2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
Bug 556732 – generate gir files consistently
* giscanner/ast.py (Field): add readable and writable properties
* giscanner/girparser.py (_parse_field): copy 'readable' and
'writable' attributes
* giscanner/transformer.py (_create_member): create fields as
read-write
* giscanner/glibtransformer.py (_introspect_object,
_pair_class_struct): make object instance and class fields
read-only
* giscanner/girwriter.py (_write_field):
* tools/generate.c (write_field_info): write field 'readable'
and 'writable' attributes only if non-default (read-only)
* girepository/girparser.c (start_field): in the absence of
attributes assume fields are read-only
* tests/boxed.gir:
* tests/struct.gir: remove redundant readable="1" from fields
* tests/scanner/foo-1.0-expected.gir:
* tests/scanner/utility-1.0-expected.gir: add writable="1" to
all record and union fields
svn path=/trunk/; revision=743
2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
Bug 556541 – access union members through UnionBlob rather than
StructBlob
* girepository/ginfo.c (g_union_info_find_method): access union
members through UnionBlob rather than StructBlob
svn path=/trunk/; revision=729
2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
Bug 556434 – unhandled interface/object/... member types
* girepository/girnode.c (g_ir_node_check_unhandled_members,
g_ir_node_build_typelib): Check all
interface/object/boxed/struct/union members are processed and
abort if they are not. (Mostly callbacks in structs, but also
fields in interfaces.)
svn path=/trunk/; revision=722
2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
* a/girepository/girnode.c (g_ir_node_build_members,
g_ir_node_build_typelib): refactor common code for processing
members to a function
svn path=/trunk/; revision=721
2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
Bug 556400 – Fails to build on OS X 10.4
* configure.ac: check for functions backtrace and backtrace_symbols
* girepository/girparser.c (backtrace_stderr): Comment out
implementation if the functions are not available.
* gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
directory for better portability
svn path=/trunk/; revision=711
2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
* girepository/girparser.c (parse_param_transfer,
start_parameter): Refactor handling of transfer=none/shallow/full
to separate function
svn path=/trunk/; revision=688
* girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
* girepository/girepository.c (find_interface): Fix
find_by_gtype case to get the type name from right offset
svn path=/trunk/; revision=686
2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
* girepository/gtypelib.h (RegisteredTypeBlob): make
'unregistered' one bit wide as everywhere else
svn path=/trunk/; revision=684
This is a big patch. You should probably remove your installation
tree to be cleaner.
* docs/typelib-format.txt: Add nsversion entry which holds
version of namespace.
* girepository/girepository.h: Add 'version' parameter to
g_irepository_require. This may be NULL. Normally
bindings should pass an explicit version though.
* girepository/girepository.c: Lots of infrastructure to
support versioning. Add some more documentation. Disallow
some usage of NULL namespaces.
* girepository/girmodule.c: Add version parameter.
* girepository/gtypelib.c: Update header size.
* giscanner/ast.py: Add version to Namespace.
* giscanner/girparser.py: Parse version attribute from
XML, pass to Namespace.
* giscanner/girwriter.py: Write out version parameter.
* giscanner/transformer.py: Clean up include registration.
* tests/*: Add version attribute.
* tests/invoke/invoke.c: Don't try looking up test before
it's loaded in repository.
* tools/generate.c: Output version parameter.
* gir/Makefile.am: Add 2.0 version to .gir files.
svn path=/trunk/; revision=677
2008-10-11 Johan Bilien <jobi@litl.com>
* giscanner/scannerparser.y: ignore non-UTF-8 string constants
2008-10-11 Johan Bilien <jobi@litl.com>
Bug 552347: Parse #defines constants
* girepository/gtypelib.c: update the list of value_size
with recently defined type tags
* giscanner/scannerparser.y: brought back parsing of #defined, as
present in older version
* giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
* giscanner/girwriter.py: write out constant tags in the gir
* giscanner/sourcescanner.py: add accessor for const_string
* giscanner/transformer.py, giscanner/glibtransformer.py: handle
constant
svn path=/trunk/; revision=673
2008-10-09 Lucas Rocha <lucasr@gnome.org>
* girepository/girepository.c (register_internal): fix regression on
invoke test case by making sure we load the global module in the
typelib when dealing with inline typelibs.
* girepository/gtypelib.c: a couple of coding style fixes.
svn path=/trunk/; revision=661
2008-10-06 Lucas Rocha <lucasr@gnome.org>
Bug 555294: Add support for multiple shared libraries per typelib.
* girepository/ginvoke.c (g_function_info_invoke),
girepository/ginfo.c(g_registered_type_info_get_g_type): use
g_typelib_symbol instead of g_module_symbol.
* girepository/girepository.h: remove g_typelib_set_module and add
g_typelib_symbol.
* girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
g_typelib_new_from_memory, g_typelib_new_from_const_memory,
g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
modules instead of just one. The symbol lookup is now abstracted
behind g_typelib_symbol which tries to find the passed symbol name in
one of its modules.
* giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
and write shared_library attribute as a comma-separated list of libs.
svn path=/trunk/; revision=660
* giscanner/ast.py: The canonical name is 'utf8', not
'string'.
* giscanner/glibast.py: A few more glib type mappings.
* girepository/girparser.c: We only parse repository types.
* tests/*.gir: Update.
svn path=/trunk/; revision=628
Previously we were just checking "reserved", but to be more correct
we should check whether reserved2 is zero as well because it is
possible for offsets to have reserved = 0 but reserved2 != 0.
svn path=/trunk/; revision=620
On Darwin, the suffix for installed shared libraries (.dylib) is
different from loadable modules (.so). We use a bit of magic shell
script from Behdad Esfahbod to figure out the right suffix.
svn path=/trunk/; revision=612
* girepository/girnode.c: Allow gtype_name
and gtype_init in struct and union.
* girepository/girparser.c: Parse glib:
boxed bits for both structure and union.
* girepository/gtypelib.c: Don't barf
if structure is boxed.
* giscanner/girparser.py: Parse new XML
format.
* giscanner/girwriter.py: Write out new
XML format.
* giscanner/glibast.py: Define new classes
which are both Boxed and Struct/Union, as
well as an "Other" for everything else.
* giscanner/glibtransformer.py: Handle
boxed types specially; we try to merge
them with a struct/union if one exists,
otherwise fall back to generic boxed.
* tests/*: Update.
* tools/generate.c: Write out new format.
svn path=/trunk/; revision=575
* gir/Makefile.am: Dep on Makefile
* girepository/ginfo.c: Print out a nicer error
message if we failed to load something.
* girepository/girepository.c: Clean up
default typelib handling; remove global
default_typelib variable. Ensure we handle
NULL repository in more places.
Support dependency resolution.
* tests/Makefile.am: Kill off gobject.gir,
it conflicts with the real one.
* tests/Object.gir: Depend on GObject.
* tools/generate.c: Take --includedir
argument to say which directories to search
for typelibs. Print out dependencies.
svn path=/trunk/; revision=541
* girepository/ginfo.c: Add some assertions regarding
refcounts, just to be sure.
* giscanner/glibtransformer.py: Blacklist a few more
odd Gio methods.
svn path=/trunk/; revision=537