[vala] gidlparser: Special handling for some ambiguous cairo symbols
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] gidlparser: Special handling for some ambiguous cairo symbols
- Date: Mon, 18 Jul 2016 10:49:54 +0000 (UTC)
commit 4fcef86c97d81dc2c38ba62c11fef3b314253741
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Mon Jul 18 12:47:34 2016 +0200
gidlparser: Special handling for some ambiguous cairo symbols
vapigen/valagidlparser.vala | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index f233019..0cb51c2 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -1896,6 +1896,17 @@ public class Vala.GIdlParser : CodeVisitor {
type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, "GLib"),
"HashTable");
} else if (type_node.tag == TypeTag.ERROR) {
type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null, "GLib"),
"Error");
+ } else if (type_node.unparsed.has_prefix ("cairo_")) {
+ if (type_node.unparsed.has_prefix ("cairo_device_t")) {
+ type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null,
"Cairo"), "Device");
+ } else if (type_node.unparsed.has_prefix ("cairo_pattern_t")) {
+ type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null,
"Cairo"), "Pattern");
+ } else if (type_node.unparsed.has_prefix ("cairo_surface_t")) {
+ type.unresolved_symbol = new UnresolvedSymbol (new UnresolvedSymbol (null,
"Cairo"), "Surface");
+ }
+ if (type_node.unparsed.has_suffix ("**")) {
+ direction = ParameterDirection.OUT;
+ }
} else if (type_node.is_interface) {
var n = type_node.@interface;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]