[vala] girparser: Merge virtual method specified in metadata.
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] girparser: Merge virtual method specified in metadata.
- Date: Mon, 4 Apr 2011 14:18:26 +0000 (UTC)
commit c64d18cb2045824345db358a69650e9e5d899492
Author: Luca Bruno <lucabru src gnome org>
Date: Thu Dec 30 19:44:18 2010 +0100
girparser: Merge virtual method specified in metadata.
vala/valagirparser.vala | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 7dff6a4..5251f9e 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -958,8 +958,8 @@ public class Vala.GirParser : CodeVisitor {
m.attributes.remove (attr);
merged.add (invoker);
different_invoker = true;
- break;
}
+ break;
}
}
if (!different_invoker) {
@@ -967,6 +967,13 @@ public class Vala.GirParser : CodeVisitor {
}
}
}
+ // merge custom vfunc
+ if (info.metadata.has_argument (ArgumentType.VFUNC_NAME)) {
+ var vfunc = get_current_first_symbol_info (info.metadata.get_string (ArgumentType.VFUNC_NAME));
+ if (vfunc != null && vfunc != info) {
+ merged.add (vfunc);
+ }
+ }
if (m.coroutine) {
// handle async methods
string finish_method_base;
@@ -2321,7 +2328,10 @@ public class Vala.GirParser : CodeVisitor {
method.is_abstract = metadata.get_bool (ArgumentType.ABSTRACT);
method.is_virtual = false;
}
- method.vfunc_name = metadata.get_string (ArgumentType.VFUNC_NAME);
+ if (metadata.has_argument (ArgumentType.VFUNC_NAME)) {
+ method.vfunc_name = metadata.get_string (ArgumentType.VFUNC_NAME);
+ method.is_virtual = true;
+ }
}
var parameters = new ArrayList<ParameterInfo> ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]