Bug 557383 - Virtual method support
authorColin Walters <walters@verbum.org>
Sat, 28 Feb 2009 00:02:48 +0000 (19:02 -0500)
committerColin Walters <walters@verbum.org>
Thu, 5 Mar 2009 20:52:12 +0000 (15:52 -0500)
commitfdbe3cc3e1cfaa546648a76b1dca72beead0b65b
tree01156e22ec59d29c642d59ce7ad75f383d77466a
parentb8e3172424ba956a0d18eae8deb305310b2cab74
Bug 557383 - Virtual method support

Broadly speaking, this change adds the concept of <vfunc> to the .gir.
The typelib already had most of the infrastructure for virtual functions,
though there is one API addition.

The scanner assumes that any class callback slot that doesn't match
a signal name is a virtual.  In the .gir, we write out *both* the <method>
wrapper and a <vfunc>.  If we can determine an association between
them (based on the names matching, or a new Virtual: annotation),
then we notate that in the .gir.

The typelib gains an association from the vfunc to the function, if
it exists.  This will be useful for bindings since they already know
how to consume FunctionInfo.
19 files changed:
girepository/ginfo.c
girepository/girepository.h
girepository/girnode.c
girepository/girnode.h
girepository/girparser.c
girepository/gtypelib.h
giscanner/annotationparser.py
giscanner/ast.py
giscanner/girwriter.py
giscanner/glibtransformer.py
tests/everything/everything.c
tests/everything/everything.h
tests/repository/Makefile.am
tests/repository/gitestrepo.c
tests/scanner/foo-1.0-expected.gir
tests/scanner/foo-1.0-expected.tgir
tests/scanner/foo.c
tests/scanner/foo.h
tools/generate.c