[vala/switch-to-gir] girparser: Add 'name' argument to metadata for methods and constructors
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/switch-to-gir] girparser: Add 'name' argument to metadata for methods and constructors
- Date: Wed, 25 Aug 2010 12:12:33 +0000 (UTC)
commit 70d3be814e9fd83a7c57d1a209b8da8aed74c1ad
Author: Luca Bruno <lethalman88 gmail com>
Date: Wed Aug 25 14:12:08 2010 +0200
girparser: Add 'name' argument to metadata for methods and constructors
vala/valagirparser.vala | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 6a87ae7..c9c72b5 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -35,7 +35,8 @@ public class Vala.GirParser : CodeVisitor {
enum ArgumentType {
HIDDEN,
TYPE,
- CHEADER_FILENAME;
+ CHEADER_FILENAME,
+ NAME;
public static ArgumentType? from_string (string name) {
var enum_class = (EnumClass) typeof(ArgumentType).class_ref ();
@@ -647,15 +648,21 @@ public class Vala.GirParser : CodeVisitor {
metadata_stack.remove_at (metadata_stack.size - 1);
}
- DataType? element_get_type (string attribute_name, bool owned_by_default) {
- var type = metadata.get_data_type (ArgumentType.TYPE, owned_by_default);
+ DataType? element_get_data_type (ArgumentType arg_type, string attribute_name, bool owned_by_default) {
+ var type = metadata.get_data_type (arg_type, owned_by_default);
if (type == null) {
- type = parse_type_from_gir_name (reader.get_attribute ("target"));
+ type = parse_type_from_gir_name (reader.get_attribute (attribute_name));
}
return type;
}
-
+ string? element_get_string (ArgumentType arg_type, string attribute_name) {
+ var str = metadata.get_string (arg_type);
+ if (str == null) {
+ str = reader.get_attribute (attribute_name);
+ }
+ return str;
+ }
void parse_repository () {
start_element ("repository");
@@ -863,7 +870,7 @@ public class Vala.GirParser : CodeVisitor {
var alias = new Alias ();
alias.source_reference = get_current_src ();
alias.name = reader.get_attribute ("name");
- alias.base_type = element_get_type ("target", true);
+ alias.base_type = element_get_data_type (ArgumentType.TYPE, "target", true);
alias.parent_namespace = current_namespace;
next ();
end_element ("alias");
@@ -1616,7 +1623,7 @@ public class Vala.GirParser : CodeVisitor {
Method parse_constructor (string? parent_ctype = null) {
start_element ("constructor");
- string name = reader.get_attribute ("name");
+ string name = element_get_string (ArgumentType.NAME, "name");
string throws_string = reader.get_attribute ("throws");
next ();
@@ -1670,7 +1677,7 @@ public class Vala.GirParser : CodeVisitor {
Symbol parse_function (string element_name) {
start_element (element_name);
- string name = reader.get_attribute ("name");
+ string name = element_get_string (ArgumentType.NAME, "name");
string cname = reader.get_attribute ("c:identifier");
string throws_string = reader.get_attribute ("throws");
string invoker = reader.get_attribute ("invoker");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]