summaryrefslogtreecommitdiff
path: root/girepository/gitypelib.c
Commit message (Collapse)AuthorAgeFilesLines
* Add directory index sectionwip/cmphColin Walters2010-10-251-8/+44
| | | | | | | | Use the internal perfect hashing API to add an index to the directory. To support this, add the notion of additional "sections" to the typelib. A section index is inserted between the header and the directory.
* girepository: Refactor lookup codeColin Walters2010-10-181-0/+74
| | | | | | | | | | | This is a cleanup patch in preparation for future indexing patches. The lookup code was a mess trying to mash in the 3 different cases of name, GType, and index into one mega-function. Split it up properly, and move the core typelib internal-scanning bits into gitypelib.c where it belongs.
* typelib: Don't fail on minor versiong-i-0.9Colin Walters2010-10-111-1/+1
| | | | | | Previously we bombed out if the minor version didn't match what we expected; this was silly since the whole point of the minor version is to enumerate compatible changes.
* Update annotations for GIRepository.Repository.Pavel Holejsovsky2010-09-151-3/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=628753
* [GIRepository] Rename GTypelib to GITypelibJohan Dahlin2010-08-311-60/+60
| | | | | Keep a typedef for backwards compatibility, until the major bindings has moved over.
* Major rewriteColin Walters2010-08-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the first big changes in this rewrite is changing the Type object to have separate target_fundamental and target_giname properties, rather than just being strings. Previously in the scanner, it was awful because we used heuristics around strings. The ast.py is refactored so that not everything is a Node - that was a rather useless abstraction. Now, only things which can have a GIName are Node. E.g. Type and Field are no longer Node. More things were merged from glibast.py into ast.py, since it isn't a very useful split. transformer.py gains more intelligence and will e.g. turn GLib.List into a List() object earlier. The namespace processing is a lot cleaner now; since we parse the included .girs, we know the C prefix for each namespace, and have functions to parse both C type names (GtkFooBar) and symbols gtk_foo_bar into their symbols cleanly. Type resolution is much, much saner because we know Type(target_giname=Gtk.Foo) maps to the namespace Gtk. glibtransformer.py now just handles the XML processing from the dump, and a few miscellaneous things. The major heavy lifting now lives in primarytransformer.py, which is a combination of most of annotationparser.py and half of glibtransformer.py. annotationparser.py now literally just parses annotations; it's no longer in the business of e.g. guessing transfer too. finaltransformer.py is a new file which does post-analysis for "introspectability" mainly. girparser.c is fixed for some introspectable=0 processing.
* Fix two compilation warningsColin Walters2010-07-191-1/+1
|
* [girepository] Actually verify header of loaded typelibs in ↵Colin Walters2010-07-141-18/+53
| | | | | | | | g_irepository_require Take a GError * for typelib loading code, validate the header. This fixes bizarre errors from gjs where g_irepository_require would happily load old typelibs.
* Don't include machine-dependent integral types in the typelibColin Walters2010-07-091-9/+2
| | | | | | | | | | | | | | | | | | | | Previously we had both e.g. GI_TYPE_TAG_LONG and GI_TYPE_TAG_INT64, but in fact the typelib is already machine-specific, so it makes sense to just encode this as a fixed type. The .gir remains abstract. We also remove size_t from the typelib; one would never want to treat it differently than an integer. time_t is removed as well; while bindings like gjs had special handling to turn it into e.g. a JS Date object, I don't think we should encourage people to use these POSIX types in their API. Use GTimeVal or the like instead. Because the typelib is now really machine-specific, we need to remove the -expected.tgirs from git. (We could potentially add a check which wasn't just a literal diff later) https://bugzilla.gnome.org/show_bug.cgi?id=623774
* Bump shared library version, typelib versionColin Walters2010-07-091-2/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=623774
* Add support for non-GObject fundamental objectsJohan Dahlin2010-07-091-1/+1
| | | | | | | | | | | | | | This patch adds support for instantiable fundamental object types, which are not GObject based. This is mostly interesting for being able to support GstMiniObject's which are extensivly used in GStreamer. Includes a big test case to the Everything module (inspired by GstMiniObject) which should be used by language bindings who wishes to test this functionallity. This patch increases the size of the typelib and breaks compatibility with older typelibs. https://bugzilla.gnome.org/show_bug.cgi?id=568913
* Allow for methods in GLibTomeu Vizoso2010-06-091-3/+6
| | | | | | | | | | | * girepository/gitypelib.c: Don't complain about constructors returning types other than objects or interfaces if the container type isn't an object or interface itself. * giscanner/glibtransformer.py: Don't give up parsing a method just because it's in the GLib namespace. https://bugzilla.gnome.org/show_bug.cgi?id=621069
* [gtypelib.ch] Rename to gitypelib.chJohan Dahlin2010-05-311-0/+2193
Rename gtypelib.h -> gitypelib-internal.h and rename gtypelib.c to gitypelib.c