diff options
author | Raffaele Sandrini <raffaele@sandrini.ch> | 2008-07-08 09:59:21 +0000 |
---|---|---|
committer | Raffaele Sandrini <rasa@src.gnome.org> | 2008-07-08 09:59:21 +0000 |
commit | 141bea444669efd2cb9e7f2b9ad4e18ad552295c (patch) | |
tree | a9248354ee71e48c97bc16069bfe3c80cdb279be /vapigen | |
parent | 14529b46b7813fc3d5648bc425a1b0389adcd204 (diff) | |
download | vala-141bea444669efd2cb9e7f2b9ad4e18ad552295c.tar.gz |
Allow vapi metadata to declare abstract methods, fix GtkCellRenderer
2008-07-08 Raffaele Sandrini <raffaele@sandrini.ch>
* vapi/packages/gtk+-2.0/gtk+-2.0.metadata:
* vapigen/valagidlparser.vala:
Allow vapi metadata to declare abstract methods, fix GtkCellRenderer
methods _get_size and _render to be abstract, based on patch by
Jared Moore, fixes bug 522355
* vapi/gtk+-2.0.vapi: Regenerated
svn path=/trunk/; revision=1687
Diffstat (limited to 'vapigen')
-rw-r--r-- | vapigen/valagidlparser.vala | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index 0d512a4bf..c97d87d90 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -843,6 +843,10 @@ public class Vala.GIdlParser : CodeVisitor { if (eval (nv[1]) == "1") { return; } + } else if (nv[0] == "abstract") { + if (eval (nv[1]) == "1") { + cl.is_abstract = true; + } } } } @@ -1326,6 +1330,10 @@ public class Vala.GIdlParser : CodeVisitor { } } else if (nv[0] == "cheader_filename") { m.add_cheader_filename (eval (nv[1])); + } else if (nv[0] == "abstract") { + if (eval (nv[1]) == "1") { + m.is_abstract = true; + } } } } @@ -1536,8 +1544,8 @@ public class Vala.GIdlParser : CodeVisitor { Method m = create_method (node.name, symbol, v.result, func != null ? func.parameters : v.parameters, false, is_interface); if (m != null) { m.binding = MemberBinding.INSTANCE; - m.is_virtual = !is_interface; - m.is_abstract = is_interface; + m.is_virtual = !(m.is_abstract || is_interface); + m.is_abstract = m.is_abstract || is_interface; if (func == null) { m.attributes.append (new Attribute ("NoWrapper", null)); |