From ffb3d21f1e1bd7554372ac19ee3086d026379183 Mon Sep 17 00:00:00 2001 From: Juerg Billeter Date: Mon, 9 Jul 2007 07:38:44 +0000 Subject: [PATCH] remove obsolete ref modifier and callback keyword 2007-07-09 Juerg Billeter * vala/scanner.l, vala/parser.y, vala/valaarray.vala, vala/valaarraycreationexpression.vala, vala/valaattribute.vala, vala/valabaseaccess.vala, vala/valablock.vala, vala/valabooleanliteral.vala, vala/valacallback.vala, vala/valaclass.vala, vala/valacodecontext.vala, vala/valacodenode.vala, vala/valacreationmethod.vala, vala/valadatatype.vala, vala/valaelementaccess.vala, vala/valaenum.vala, vala/valafield.vala, vala/valaflags.vala, vala/valaformalparameter.vala, vala/valaforstatement.vala, vala/valainitializerlist.vala, vala/valaintegerliteral.vala, vala/valainterface.vala, vala/valainterfacewriter.vala, vala/valainvocationexpression.vala, vala/valainvokable.vala, vala/valalambdaexpression.vala, vala/valaliteralexpression.vala, vala/valalocalvariabledeclaration.vala, vala/valamemberaccess.vala, vala/valamemorymanager.vala, vala/valamethod.vala, vala/valanamespace.vala, vala/valanullliteral.vala, vala/valaobjectcreationexpression.vala, vala/valaparser.vala, vala/valapointer.vala, vala/valaproperty.vala, vala/valasemanticanalyzer.vala, vala/valasignal.vala, vala/valasourcefile.vala, vala/valasourcereference.vala, vala/valastringliteral.vala, vala/valastruct.vala, vala/valaswitchsection.vala, vala/valaswitchstatement.vala, vala/valasymbol.vala, vala/valasymbolresolver.vala, vala/valatypereference.vala, vala/valavariabledeclarator.vala, gobject/valaclassregisterfunction.vala, gobject/valacodegenerator.vala, gobject/valacodegeneratorassignment.vala, gobject/valacodegeneratorclass.vala, gobject/valacodegeneratorinterface.vala, gobject/valacodegeneratorinvocationexpression.vala, gobject/valacodegeneratormemberaccess.vala, gobject/valacodegeneratormethod.vala, gobject/valacodegeneratorsignal.vala, gobject/valacodegeneratorsourcefile.vala, gobject/valainterfaceregisterfunction.vala, gobject/valatyperegisterfunction.vala, ccode/valaccodefragment.vala, ccode/valaccodefunction.vala, compiler/valacompiler.vala, vapi/cairo.vala, vapi/glib-2.0.vala, vapi/libxml-2.0.vala, tests/test-023.vala, gobject-introspection/gidl.vala, vapigen/valagidlparser.vala, vapigen/valavapigen.vala: remove obsolete ref modifier and callback keyword svn path=/trunk/; revision=334 --- ChangeLog | 44 ++++ ccode/valaccodefragment.vala | 2 +- ccode/valaccodefunction.vala | 4 +- compiler/valacompiler.vala | 5 +- gobject-introspection/gidl.vala | 4 +- gobject/valaclassregisterfunction.vala | 16 +- gobject/valacodegenerator.vala | 20 +- gobject/valacodegeneratorassignment.vala | 8 +- gobject/valacodegeneratorclass.vala | 6 +- gobject/valacodegeneratorinterface.vala | 4 +- gobject/valacodegeneratorinvocationexpression.vala | 4 +- gobject/valacodegeneratormemberaccess.vala | 8 +- gobject/valacodegeneratormethod.vala | 10 +- gobject/valacodegeneratorsignal.vala | 4 +- gobject/valacodegeneratorsourcefile.vala | 6 +- gobject/valainterfaceregisterfunction.vala | 14 +- gobject/valatyperegisterfunction.vala | 16 +- tests/test-023.vala | 2 +- vala/parser.y | 112 ++------- vala/scanner.l | 1 - vala/valaarray.vala | 6 +- vala/valaarraycreationexpression.vala | 5 +- vala/valaattribute.vala | 4 +- vala/valabaseaccess.vala | 4 +- vala/valablock.vala | 6 +- vala/valabooleanliteral.vala | 4 +- vala/valacallback.vala | 2 +- vala/valaclass.vala | 16 +- vala/valacodecontext.vala | 8 +- vala/valacodenode.vala | 2 +- vala/valacreationmethod.vala | 2 +- vala/valadatatype.vala | 8 +- vala/valaelementaccess.vala | 5 +- vala/valaenum.vala | 6 +- vala/valafield.vala | 2 +- vala/valaflags.vala | 2 +- vala/valaformalparameter.vala | 2 +- vala/valaforstatement.vala | 4 +- vala/valainitializerlist.vala | 4 +- vala/valaintegerliteral.vala | 4 +- vala/valainterface.vala | 14 +- vala/valainterfacewriter.vala | 9 +- vala/valainvocationexpression.vala | 2 +- vala/valainvokable.vala | 2 +- vala/valalambdaexpression.vala | 4 +- vala/valaliteralexpression.vala | 4 +- vala/valalocalvariabledeclaration.vala | 4 +- vala/valamemberaccess.vala | 4 +- vala/valamemorymanager.vala | 2 +- vala/valamethod.vala | 6 +- vala/valanamespace.vala | 12 +- vala/valanullliteral.vala | 4 +- vala/valaobjectcreationexpression.vala | 4 +- vala/valaparser.vala | 2 +- vala/valapointer.vala | 6 +- vala/valaproperty.vala | 4 +- vala/valasemanticanalyzer.vala | 14 +- vala/valasignal.vala | 4 +- vala/valasourcefile.vala | 4 +- vala/valasourcereference.vala | 4 +- vala/valastringliteral.vala | 4 +- vala/valastruct.vala | 12 +- vala/valaswitchsection.vala | 6 +- vala/valaswitchstatement.vala | 4 +- vala/valasymbol.vala | 4 +- vala/valasymbolresolver.vala | 10 - vala/valatypereference.vala | 43 ++-- vala/valavariabledeclarator.vala | 4 +- vapi/cairo.vala | 6 +- vapi/glib-2.0.vala | 262 ++++++++++----------- vapi/libxml-2.0.vala | 4 +- vapigen/valagidlparser.vala | 37 +-- vapigen/valavapigen.vala | 4 +- 73 files changed, 433 insertions(+), 462 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8bc3f4de..3d3e0c75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,49 @@ 2007-07-09 Jürg Billeter + * vala/scanner.l, vala/parser.y, vala/valaarray.vala, + vala/valaarraycreationexpression.vala, vala/valaattribute.vala, + vala/valabaseaccess.vala, vala/valablock.vala, + vala/valabooleanliteral.vala, vala/valacallback.vala, + vala/valaclass.vala, vala/valacodecontext.vala, + vala/valacodenode.vala, vala/valacreationmethod.vala, + vala/valadatatype.vala, vala/valaelementaccess.vala, + vala/valaenum.vala, vala/valafield.vala, vala/valaflags.vala, + vala/valaformalparameter.vala, vala/valaforstatement.vala, + vala/valainitializerlist.vala, vala/valaintegerliteral.vala, + vala/valainterface.vala, vala/valainterfacewriter.vala, + vala/valainvocationexpression.vala, vala/valainvokable.vala, + vala/valalambdaexpression.vala, vala/valaliteralexpression.vala, + vala/valalocalvariabledeclaration.vala, vala/valamemberaccess.vala, + vala/valamemorymanager.vala, vala/valamethod.vala, + vala/valanamespace.vala, vala/valanullliteral.vala, + vala/valaobjectcreationexpression.vala, vala/valaparser.vala, + vala/valapointer.vala, vala/valaproperty.vala, + vala/valasemanticanalyzer.vala, vala/valasignal.vala, + vala/valasourcefile.vala, vala/valasourcereference.vala, + vala/valastringliteral.vala, vala/valastruct.vala, + vala/valaswitchsection.vala, vala/valaswitchstatement.vala, + vala/valasymbol.vala, vala/valasymbolresolver.vala, + vala/valatypereference.vala, vala/valavariabledeclarator.vala, + gobject/valaclassregisterfunction.vala, + gobject/valacodegenerator.vala, + gobject/valacodegeneratorassignment.vala, + gobject/valacodegeneratorclass.vala, + gobject/valacodegeneratorinterface.vala, + gobject/valacodegeneratorinvocationexpression.vala, + gobject/valacodegeneratormemberaccess.vala, + gobject/valacodegeneratormethod.vala, + gobject/valacodegeneratorsignal.vala, + gobject/valacodegeneratorsourcefile.vala, + gobject/valainterfaceregisterfunction.vala, + gobject/valatyperegisterfunction.vala, ccode/valaccodefragment.vala, + ccode/valaccodefunction.vala, compiler/valacompiler.vala, + vapi/cairo.vala, vapi/glib-2.0.vala, vapi/libxml-2.0.vala, + tests/test-023.vala, gobject-introspection/gidl.vala, + vapigen/valagidlparser.vala, vapigen/valavapigen.vala: remove obsolete + ref modifier and callback keyword + +2007-07-09 Jürg Billeter + * vala/valainterfacewriter.vala: write static delegate instead of callback * tests/test-014.vala, tests/test-015.vala, vapi/atk.vala, diff --git a/ccode/valaccodefragment.vala b/ccode/valaccodefragment.vala index 6f2e05bb..b344383f 100644 --- a/ccode/valaccodefragment.vala +++ b/ccode/valaccodefragment.vala @@ -42,7 +42,7 @@ public class Vala.CCodeFragment : CCodeNode { * * @return children list */ - public ref List get_children () { + public List get_children () { return children.copy (); } diff --git a/ccode/valaccodefunction.vala b/ccode/valaccodefunction.vala index 9b86fa60..722cf970 100644 --- a/ccode/valaccodefunction.vala +++ b/ccode/valaccodefunction.vala @@ -1,6 +1,6 @@ /* valaccodefunction.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -67,7 +67,7 @@ public class Vala.CCodeFunction : CCodeNode { * * @return copied function */ - public ref CCodeFunction! copy () { + public CCodeFunction! copy () { var func = new CCodeFunction (name, return_type); func.modifiers = modifiers; diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala index d211d87f..e0381ed3 100644 --- a/compiler/valacompiler.vala +++ b/compiler/valacompiler.vala @@ -72,7 +72,7 @@ class Vala.Compiler { } } - private ref string get_package_path (string! pkg) { + private string get_package_path (string! pkg) { string basename = "%s.vala".printf (pkg); if (vapi_directories != null) { @@ -121,7 +121,8 @@ class Vala.Compiler { var deps_filename = Path.build_filename (Path.get_dirname (package_path), "%s.deps".printf (pkg)); if (FileUtils.test (deps_filename, FileTest.EXISTS)) { string deps_content; - FileUtils.get_contents (deps_filename, out deps_content, null, null); + long deps_len; + FileUtils.get_contents (deps_filename, out deps_content, out deps_len, null); foreach (string dep in deps_content.split ("\n")) { if (dep != "") { if (!add_package (context, dep)) { diff --git a/gobject-introspection/gidl.vala b/gobject-introspection/gidl.vala index 2572b321..1973d66f 100644 --- a/gobject-introspection/gidl.vala +++ b/gobject-introspection/gidl.vala @@ -1,6 +1,6 @@ /* gidl.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -24,7 +24,7 @@ namespace GLib { [CCode (cheader_filename = "gidlparser.h")] public struct Idl { - public static ref List parse_file (string! filename, out Error error); + public static List parse_file (string! filename, out Error error); } [CCode (cheader_filename = "gidlmodule.h")] diff --git a/gobject/valaclassregisterfunction.vala b/gobject/valaclassregisterfunction.vala index 29d96ed7..8d5a9cf9 100644 --- a/gobject/valaclassregisterfunction.vala +++ b/gobject/valaclassregisterfunction.vala @@ -45,27 +45,27 @@ public class Vala.ClassRegisterFunction : TypeRegisterFunction { return class_reference; } - public override ref string! get_type_struct_name () { + public override string! get_type_struct_name () { return "%sClass".printf (class_reference.get_cname ()); } - public override ref string! get_base_init_func_name () { + public override string! get_base_init_func_name () { return "NULL"; } - public override ref string! get_class_init_func_name () { + public override string! get_class_init_func_name () { return "%s_class_init".printf (class_reference.get_lower_case_cname (null)); } - public override ref string! get_instance_struct_size () { + public override string! get_instance_struct_size () { return "sizeof (%s)".printf (class_reference.get_cname ()); } - public override ref string! get_instance_init_func_name () { + public override string! get_instance_init_func_name () { return "%s_init".printf (class_reference.get_lower_case_cname (null)); } - public override ref string! get_parent_type_name () { + public override string! get_parent_type_name () { return class_reference.base_class.get_upper_case_cname ("TYPE_"); } @@ -77,7 +77,7 @@ public class Vala.ClassRegisterFunction : TypeRegisterFunction { } } - public override ref CCodeFragment! get_type_interface_init_declaration () { + public override CCodeFragment! get_type_interface_init_declaration () { var frag = new CCodeFragment (); foreach (TypeReference base_type in class_reference.get_base_types ()) { @@ -98,7 +98,7 @@ public class Vala.ClassRegisterFunction : TypeRegisterFunction { return frag; } - public override ref CCodeFragment! get_type_interface_init_statements () { + public override CCodeFragment! get_type_interface_init_statements () { var frag = new CCodeFragment (); foreach (TypeReference base_type in class_reference.get_base_types ()) { diff --git a/gobject/valacodegenerator.vala b/gobject/valacodegenerator.vala index a7af9f56..0e26fcbf 100644 --- a/gobject/valacodegenerator.vala +++ b/gobject/valacodegenerator.vala @@ -821,10 +821,10 @@ public class Vala.CodeGenerator : CodeVisitor { } } - private ref VariableDeclarator get_temp_variable_declarator (TypeReference! type, bool takes_ownership = true) { + private VariableDeclarator get_temp_variable_declarator (TypeReference! type, bool takes_ownership = true) { var decl = new VariableDeclarator ("__temp%d".printf (next_temp_var_id)); decl.type_reference = type.copy (); - decl.type_reference.reference_to_value_type = false; + decl.type_reference.is_ref = false; decl.type_reference.is_out = false; decl.type_reference.takes_ownership = takes_ownership; @@ -850,7 +850,7 @@ public class Vala.CodeGenerator : CodeVisitor { } } - private ref CCodeExpression get_unref_expression (CCodeExpression! cvar, TypeReference! type) { + private CCodeExpression get_unref_expression (CCodeExpression! cvar, TypeReference! type) { /* (foo == NULL ? NULL : foo = (unref (foo), NULL)) */ /* can be simplified to @@ -1060,7 +1060,7 @@ public class Vala.CodeGenerator : CodeVisitor { List default_statements = null; // generate nested if statements - ref CCodeStatement ctopstmt = null; + CCodeStatement ctopstmt = null; CCodeIfStatement coldif = null; foreach (SwitchSection section in stmt.get_sections ()) { if (section.has_default_label ()) { @@ -1419,7 +1419,7 @@ public class Vala.CodeGenerator : CodeVisitor { } } - private ref string get_symbol_lock_name (Symbol! sym) { + private string get_symbol_lock_name (Symbol! sym) { return "__lock_%s".printf (sym.name); } @@ -1539,7 +1539,7 @@ public class Vala.CodeGenerator : CodeVisitor { visit_expression (expr); } - private ref CCodeExpression! get_array_length_cexpression (Expression! array_expr, int dim) { + private CCodeExpression! get_array_length_cexpression (Expression! array_expr, int dim) { bool is_out = false; if (array_expr is UnaryExpression) { @@ -1604,7 +1604,7 @@ public class Vala.CodeGenerator : CodeVisitor { } if (field.instance) { - ref CCodeExpression typed_inst; + CCodeExpression typed_inst; if (field.symbol.parent_symbol.node != base_type) { // FIXME: use C cast if debugging disabled typed_inst = new CCodeFunctionCall (new CCodeIdentifier (((DataType) field.symbol.parent_symbol.node).get_upper_case_cname (null))); @@ -1612,7 +1612,7 @@ public class Vala.CodeGenerator : CodeVisitor { } else { typed_inst = pub_inst; } - ref CCodeExpression inst; + CCodeExpression inst; if (field.access == MemberAccessibility.PRIVATE) { inst = new CCodeMemberAccess.pointer (typed_inst, "priv"); } else { @@ -1721,7 +1721,7 @@ public class Vala.CodeGenerator : CodeVisitor { return null; } - private ref CCodeExpression get_ref_expression (Expression! expr) { + private CCodeExpression get_ref_expression (Expression! expr) { /* (temp = expr, temp == NULL ? NULL : ref (temp)) * * can be simplified to @@ -1865,7 +1865,7 @@ public class Vala.CodeGenerator : CodeVisitor { /* explicitly use strong reference as ccall gets * unrefed at end of inner block */ - ref CCodeExpression cexpr = (CCodeExpression) arg.ccodenode; + CCodeExpression cexpr = (CCodeExpression) arg.ccodenode; if (params_it != null) { var param = (FormalParameter) params_it.data; ellipsis = param.ellipsis; diff --git a/gobject/valacodegeneratorassignment.vala b/gobject/valacodegeneratorassignment.vala index 1c2b7d30..56307cd6 100644 --- a/gobject/valacodegeneratorassignment.vala +++ b/gobject/valacodegeneratorassignment.vala @@ -63,7 +63,7 @@ public class Vala.CodeGenerator { a.ccodenode = ccomma; } else { - ref CCodeExpression cexpr = (CCodeExpression) a.right.ccodenode; + CCodeExpression cexpr = (CCodeExpression) a.right.ccodenode; if (!prop.no_accessor_method && prop.type_reference.data_type != null @@ -191,7 +191,7 @@ public class Vala.CodeGenerator { /* explicitly use strong reference as ccast gets * unrefed at end of inner block */ - ref CCodeExpression rhs = (CCodeExpression) a.right.ccodenode; + CCodeExpression rhs = (CCodeExpression) a.right.ccodenode; if (a.left.static_type.data_type != null && a.right.static_type.data_type != null @@ -257,7 +257,7 @@ public class Vala.CodeGenerator { } } - private ref CCodeFunctionCall get_property_set_call (Property! prop, MemberAccess! ma, CCodeExpression! cexpr) { + private CCodeFunctionCall get_property_set_call (Property! prop, MemberAccess! ma, CCodeExpression! cexpr) { var cl = (Class) prop.symbol.parent_symbol.node; var set_func = "g_object_set"; @@ -275,7 +275,7 @@ public class Vala.CodeGenerator { var ccall = new CCodeFunctionCall (new CCodeIdentifier (set_func)); /* target instance is first argument */ - ref CCodeExpression instance; + CCodeExpression instance; var req_cast = false; if (ma.inner == null) { diff --git a/gobject/valacodegeneratorclass.vala b/gobject/valacodegeneratorclass.vala index ce4de0b1..fef05ec2 100644 --- a/gobject/valacodegeneratorclass.vala +++ b/gobject/valacodegeneratorclass.vala @@ -134,7 +134,7 @@ public class Vala.CodeGenerator { var init_block = new CCodeBlock (); class_init.block = init_block; - ref CCodeFunctionCall ccall; + CCodeFunctionCall ccall; /* save pointer to parent class */ var parent_decl = new CCodeDeclaration ("gpointer"); @@ -249,7 +249,7 @@ public class Vala.CodeGenerator { var init_block = new CCodeBlock (); iface_init.block = init_block; - ref CCodeFunctionCall ccall; + CCodeFunctionCall ccall; /* save pointer to parent vtable */ string parent_iface_var = "%s_%s_parent_iface".printf (cl.get_lower_case_cname (null), iface.get_lower_case_cname (null)); @@ -360,7 +360,7 @@ public class Vala.CodeGenerator { source_type_member_definition.append (function); } - private ref CCodeIdentifier! get_value_setter_function (TypeReference! type_reference) { + private CCodeIdentifier! get_value_setter_function (TypeReference! type_reference) { if (type_reference.data_type is Class || type_reference.data_type is Interface) { return new CCodeIdentifier ("g_value_set_object"); } else if (type_reference.data_type == string_type.data_type) { diff --git a/gobject/valacodegeneratorinterface.vala b/gobject/valacodegeneratorinterface.vala index 5ca47eda..f07715d9 100644 --- a/gobject/valacodegeneratorinterface.vala +++ b/gobject/valacodegeneratorinterface.vala @@ -73,7 +73,7 @@ public class Vala.CodeGenerator { current_type_symbol = null; } - private ref CCodeFunctionCall! get_param_spec (Property! prop) { + private CCodeFunctionCall! get_param_spec (Property! prop) { var cspec = new CCodeFunctionCall (); cspec.add_argument (prop.get_canonical_cconstant ()); cspec.add_argument (new CCodeConstant ("\"foo\"")); @@ -141,7 +141,7 @@ public class Vala.CodeGenerator { return cspec; } - private ref CCodeFunctionCall! get_signal_creation (Signal! sig, DataType! type) { + private CCodeFunctionCall! get_signal_creation (Signal! sig, DataType! type) { var csignew = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_new")); csignew.add_argument (new CCodeConstant ("\"%s\"".printf (sig.name))); csignew.add_argument (new CCodeIdentifier (type.get_upper_case_cname ("TYPE_"))); diff --git a/gobject/valacodegeneratorinvocationexpression.vala b/gobject/valacodegeneratorinvocationexpression.vala index d959679c..cabe05d5 100644 --- a/gobject/valacodegeneratorinvocationexpression.vala +++ b/gobject/valacodegeneratorinvocationexpression.vala @@ -57,7 +57,7 @@ public class Vala.CodeGenerator { /* explicitly use strong reference as ccall gets unrefed * at end of inner block */ - ref CCodeExpression instance; + CCodeExpression instance; if (m != null && m.instance) { var base_method = m; if (m.base_interface_method != null) { @@ -102,7 +102,7 @@ public class Vala.CodeGenerator { /* explicitly use strong reference as ccall gets * unrefed at end of inner block */ - ref CCodeExpression cexpr = (CCodeExpression) arg.ccodenode; + CCodeExpression cexpr = (CCodeExpression) arg.ccodenode; if (params_it != null) { var param = (FormalParameter) params_it.data; ellipsis = param.ellipsis; diff --git a/gobject/valacodegeneratormemberaccess.vala b/gobject/valacodegeneratormemberaccess.vala index 1d3e0de9..b6c1876d 100644 --- a/gobject/valacodegeneratormemberaccess.vala +++ b/gobject/valacodegeneratormemberaccess.vala @@ -57,7 +57,7 @@ public class Vala.CodeGenerator { } else if (expr.symbol_reference.node is Field) { var f = (Field) expr.symbol_reference.node; if (f.instance) { - ref CCodeExpression typed_inst; + CCodeExpression typed_inst; if (f.symbol.parent_symbol.node != base_type) { // FIXME: use C cast if debugging disabled typed_inst = new CCodeFunctionCall (new CCodeIdentifier (((DataType) f.symbol.parent_symbol.node).get_upper_case_cname (null))); @@ -65,7 +65,7 @@ public class Vala.CodeGenerator { } else { typed_inst = pub_inst; } - ref CCodeExpression inst; + CCodeExpression inst; if (f.access == MemberAccessibility.PRIVATE) { inst = new CCodeMemberAccess.pointer (typed_inst, "priv"); } else { @@ -144,7 +144,7 @@ public class Vala.CodeGenerator { if (p.name == "this") { expr.ccodenode = pub_inst; } else { - if (p.type_reference.is_out || p.type_reference.reference_to_value_type) { + if (p.type_reference.is_out || p.type_reference.is_ref) { expr.ccodenode = new CCodeIdentifier ("(*%s)".printf (p.name)); } else { expr.ccodenode = new CCodeIdentifier (p.name); @@ -160,7 +160,7 @@ public class Vala.CodeGenerator { /* explicitly use strong reference as ccast * gets unrefed at the end of the inner block */ - ref CCodeExpression typed_pub_inst = pub_inst; + CCodeExpression typed_pub_inst = pub_inst; /* cast if necessary */ if (cl != base_type) { diff --git a/gobject/valacodegeneratormethod.vala b/gobject/valacodegeneratormethod.vala index aa068b56..270e3d5b 100644 --- a/gobject/valacodegeneratormethod.vala +++ b/gobject/valacodegeneratormethod.vala @@ -329,11 +329,11 @@ public class Vala.CodeGenerator { } } - private ref CCodeStatement create_method_type_check_statement (Method! m, DataType! t, bool non_null, string! var_name) { + private CCodeStatement create_method_type_check_statement (Method! m, DataType! t, bool non_null, string! var_name) { return create_type_check_statement (m, m.return_type.data_type, t, non_null, var_name); } - private ref CCodeStatement create_property_type_check_statement (Property! prop, bool getter, DataType! t, bool non_null, string! var_name) { + private CCodeStatement create_property_type_check_statement (Property! prop, bool getter, DataType! t, bool non_null, string! var_name) { if (getter) { return create_type_check_statement (prop, prop.type_reference.data_type, t, non_null, var_name); } else { @@ -341,14 +341,14 @@ public class Vala.CodeGenerator { } } - private ref CCodeStatement create_type_check_statement (CodeNode! method_node, DataType ret_type, DataType! t, bool non_null, string! var_name) { + private CCodeStatement create_type_check_statement (CodeNode! method_node, DataType ret_type, DataType! t, bool non_null, string! var_name) { var ccheck = new CCodeFunctionCall (); if (t is Class || t is Interface) { var ctype_check = new CCodeFunctionCall (new CCodeIdentifier (t.get_upper_case_cname ("IS_"))); ctype_check.add_argument (new CCodeIdentifier (var_name)); - ref CCodeExpression cexpr = ctype_check; + CCodeExpression cexpr = ctype_check; if (!non_null) { var cnull = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeIdentifier (var_name), new CCodeConstant ("NULL")); @@ -392,7 +392,7 @@ public class Vala.CodeGenerator { return null; } - private ref string! get_array_length_cname (string! array_cname, int dim) { + private string! get_array_length_cname (string! array_cname, int dim) { return "%s_length%d".printf (array_cname, dim); } diff --git a/gobject/valacodegeneratorsignal.vala b/gobject/valacodegeneratorsignal.vala index e7d512ee..0fbf3dd6 100644 --- a/gobject/valacodegeneratorsignal.vala +++ b/gobject/valacodegeneratorsignal.vala @@ -34,7 +34,7 @@ public class Vala.CodeGenerator { } } - private ref string get_signal_marshaller_function (Signal! sig, string prefix = null) { + private string get_signal_marshaller_function (Signal! sig, string prefix = null) { var signature = get_signal_signature (sig); string ret; var params = sig.get_parameters (); @@ -85,7 +85,7 @@ public class Vala.CodeGenerator { return null; } - private ref string get_signal_signature (Signal! sig) { + private string get_signal_signature (Signal! sig) { string signature; var params = sig.get_parameters (); diff --git a/gobject/valacodegeneratorsourcefile.vala b/gobject/valacodegeneratorsourcefile.vala index f02a76d6..f29c8980 100644 --- a/gobject/valacodegeneratorsourcefile.vala +++ b/gobject/valacodegeneratorsourcefile.vala @@ -24,7 +24,7 @@ using GLib; public class Vala.CodeGenerator { - private ref CCodeIncludeDirective get_internal_include (string! filename) { + private CCodeIncludeDirective get_internal_include (string! filename) { return new CCodeIncludeDirective (filename, context.library == null); } @@ -50,7 +50,7 @@ public class Vala.CodeGenerator { header_begin.append (new CCodeIncludeDirective ("glib-object.h")); source_include_directives.append (new CCodeIncludeDirective (source_file.get_cheader_filename (), true)); - ref List used_includes = null; + List used_includes = null; used_includes.append ("glib.h"); used_includes.append ("glib-object.h"); used_includes.append (source_file.get_cheader_filename ()); @@ -175,7 +175,7 @@ public class Vala.CodeGenerator { source_signal_marshaller_declaration = null; } - private static ref string get_define_for_filename (string! filename) { + private static string get_define_for_filename (string! filename) { var define = new String ("__"); var i = filename; diff --git a/gobject/valainterfaceregisterfunction.vala b/gobject/valainterfaceregisterfunction.vala index 7b9a94d0..44bdaaab 100644 --- a/gobject/valainterfaceregisterfunction.vala +++ b/gobject/valainterfaceregisterfunction.vala @@ -40,31 +40,31 @@ public class Vala.InterfaceRegisterFunction : TypeRegisterFunction { return interface_reference; } - public override ref string! get_type_struct_name () { + public override string! get_type_struct_name () { return interface_reference.get_type_cname (); } - public override ref string! get_base_init_func_name () { + public override string! get_base_init_func_name () { return "%s_base_init".printf (interface_reference.get_lower_case_cname (null)); } - public override ref string! get_class_init_func_name () { + public override string! get_class_init_func_name () { return "NULL"; } - public override ref string! get_instance_struct_size () { + public override string! get_instance_struct_size () { return "0"; } - public override ref string! get_instance_init_func_name () { + public override string! get_instance_init_func_name () { return "NULL"; } - public override ref string! get_parent_type_name () { + public override string! get_parent_type_name () { return "G_TYPE_INTERFACE"; } - public override ref CCodeFragment! get_type_interface_init_statements () { + public override CCodeFragment! get_type_interface_init_statements () { var frag = new CCodeFragment (); /* register all prerequisites */ diff --git a/gobject/valatyperegisterfunction.vala b/gobject/valatyperegisterfunction.vala index 7cde82a7..389f9da7 100644 --- a/gobject/valatyperegisterfunction.vala +++ b/gobject/valatyperegisterfunction.vala @@ -116,42 +116,42 @@ public abstract class Vala.TypeRegisterFunction { * * @return C struct name */ - public abstract ref string! get_type_struct_name (); + public abstract string! get_type_struct_name (); /** * Returns the name of the base_init function in C code. * * @return C function name */ - public abstract ref string! get_base_init_func_name (); + public abstract string! get_base_init_func_name (); /** * Returns the name of the class_init function in C code. * * @return C function name */ - public abstract ref string! get_class_init_func_name (); + public abstract string! get_class_init_func_name (); /** * Returns the size of the instance struct in C code. * * @return C instance struct size */ - public abstract ref string! get_instance_struct_size (); + public abstract string! get_instance_struct_size (); /** * Returns the name of the instance_init function in C code. * * @return C function name */ - public abstract ref string! get_instance_init_func_name (); + public abstract string! get_instance_init_func_name (); /** * Returns the name of the parent type in C code. * * @return C parent type name */ - public abstract ref string! get_parent_type_name (); + public abstract string! get_parent_type_name (); /** * Returns the set of type flags to be applied when registering. @@ -167,7 +167,7 @@ public abstract class Vala.TypeRegisterFunction { * * @return C declarations */ - public virtual ref CCodeFragment! get_type_interface_init_declaration () { + public virtual CCodeFragment! get_type_interface_init_declaration () { return new CCodeFragment (); } @@ -176,7 +176,7 @@ public abstract class Vala.TypeRegisterFunction { * * @return C statements */ - public abstract ref CCodeFragment! get_type_interface_init_statements (); + public abstract CCodeFragment! get_type_interface_init_statements (); /** * Returns the declaration for this type register function in C code. diff --git a/tests/test-023.vala b/tests/test-023.vala index b741f4fa..605f1b5c 100644 --- a/tests/test-023.vala +++ b/tests/test-023.vala @@ -7,7 +7,7 @@ class Maman.Foo { } } - public ref List create_list () { + public List create_list () { var s = new List(); s.append ("2"); diff --git a/vala/parser.y b/vala/parser.y index dd3f6c22..df0a8ace 100644 --- a/vala/parser.y +++ b/vala/parser.y @@ -154,7 +154,6 @@ static void yyerror (YYLTYPE *locp, ValaParser *parser, const char *msg); %token ABSTRACT "abstract" %token BASE "base" %token BREAK "break" -%token CALLBACK "callback" %token CASE "case" %token CATCH "catch" %token CLASS "class" @@ -510,10 +509,19 @@ type vala_type_reference_set_non_null ($$, TRUE); } } + | WEAK type_name opt_rank_specifier opt_op_neg + { + $$ = $2; + vala_type_reference_set_is_weak ($$, TRUE); + vala_type_reference_set_array_rank ($$, $3); + if ($4) { + vala_type_reference_set_non_null ($$, TRUE); + } + } | type_name opt_rank_specifier opt_op_neg HASH { $$ = $1; - vala_type_reference_set_is_ref ($$, TRUE); + vala_type_reference_set_takes_ownership ($$, TRUE); vala_type_reference_set_array_rank ($$, $2); if ($3) { vala_type_reference_set_non_null ($$, TRUE); @@ -528,15 +536,6 @@ type vala_type_reference_set_non_null ($$, TRUE); } } - | WEAK type_name opt_rank_specifier opt_op_neg - { - $$ = $2; - vala_type_reference_set_is_weak ($$, TRUE); - vala_type_reference_set_array_rank ($$, $3); - if ($4) { - vala_type_reference_set_non_null ($$, TRUE); - } - } | OUT type_name opt_rank_specifier opt_op_neg { $$ = $2; @@ -546,10 +545,10 @@ type vala_type_reference_set_non_null ($$, TRUE); } } - | OUT REF type_name opt_rank_specifier opt_op_neg + | OUT WEAK type_name opt_rank_specifier opt_op_neg { $$ = $3; - vala_type_reference_set_is_ref ($$, TRUE); + vala_type_reference_set_is_weak ($$, TRUE); vala_type_reference_set_is_out ($$, TRUE); vala_type_reference_set_array_rank ($$, $4); if ($5) { @@ -1529,18 +1528,6 @@ local_variable_type g_object_unref (src); vala_type_reference_set_pointer_level ($$, $2); } - | REF primary_expression opt_bracket_pair opt_op_neg - { - ValaSourceReference *src = src(@2); - $$ = vala_type_reference_new_from_expression ($2); - g_object_unref ($2); - g_object_unref (src); - vala_type_reference_set_takes_ownership ($$, TRUE); - vala_type_reference_set_array_rank ($$, $3); - if ($4) { - vala_type_reference_set_non_null ($$, TRUE); - } - } | WEAK primary_expression opt_bracket_pair opt_op_neg { ValaSourceReference *src = src(@2); @@ -2481,12 +2468,15 @@ field_declaration { ValaSourceReference *src; + src = src_com(@5, $1); + + if (vala_type_reference_get_is_ref ($5) || vala_type_reference_get_is_out ($5)) { + vala_report_error (src, "`ref' and `out' may only be used for parameters."); + } if (!vala_type_reference_get_is_weak ($5)) { vala_type_reference_set_takes_ownership ($5, TRUE); } - vala_type_reference_set_is_ref ($5, FALSE); - - src = src_com(@5, $1); + $$ = vala_field_new (vala_variable_declarator_get_name ($6), $5, vala_variable_declarator_get_initializer ($6), src); g_object_unref (src); if ($3 != 0) { @@ -2599,12 +2589,16 @@ method_header GList *l; ValaSourceReference *src; ValaModifier vmodifiers; - + + src = src_com(@6, $1); + + if (vala_type_reference_get_is_ref ($5) || vala_type_reference_get_is_out ($5)) { + vala_report_error (src, "`ref' and `out' may only be used for parameters."); + } if (!vala_type_reference_get_is_weak ($5)) { vala_type_reference_set_transfers_ownership ($5, TRUE); } - - src = src_com(@6, $1); + $$ = vala_method_new ($6, $5, src); g_object_unref (src); if ($3 != 0) { @@ -2722,11 +2716,6 @@ fixed_parameter { ValaSourceReference *src; - if (vala_type_reference_get_is_ref ($3) && vala_type_reference_get_is_out ($3)) { - vala_type_reference_set_takes_ownership ($3, TRUE); - vala_type_reference_set_is_ref ($3, FALSE); - } - src = src(@3); $$ = vala_formal_parameter_new ($4, $3, src); g_object_unref (src); @@ -2738,11 +2727,6 @@ fixed_parameter { ValaSourceReference *src; - if (vala_type_reference_get_is_ref ($3) && vala_type_reference_get_is_out ($3)) { - vala_type_reference_set_takes_ownership ($3, TRUE); - vala_type_reference_set_is_ref ($3, FALSE); - } - src = src(@3); $$ = vala_formal_parameter_new ($4, $3, src); g_object_unref (src); @@ -3285,51 +3269,7 @@ flags_member_declaration ; callback_declaration - : comment opt_attributes opt_access_modifier CALLBACK type identifier opt_name_specifier opt_type_parameter_list OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS SEMICOLON - { - ValaSourceReference *src; - GList *l; - char *name = $6; - - if ($7 != NULL) { - ValaSourceReference *ns_src = src(@6); - current_namespace = vala_namespace_new ($6, ns_src); - g_free ($6); - g_object_unref (ns_src); - current_namespace_implicit = TRUE; - - vala_source_file_add_namespace (current_source_file, current_namespace); - g_object_unref (current_namespace); - - name = $7; - } - - src = src_com(@6, $1); - $$ = vala_callback_new (name, $5, src); - g_free (name); - g_object_unref ($5); - g_object_unref (src); - if ($3 != 0) { - VALA_DATA_TYPE($$)->access = $3; - } - VALA_CODE_NODE($$)->attributes = $2; - - if ($8 != NULL) { - for (l = $8; l != NULL; l = l->next) { - vala_callback_add_type_parameter ($$, l->data); - g_object_unref (l->data); - } - g_list_free ($8); - } - if ($10 != NULL) { - for (l = $10; l != NULL; l = l->next) { - vala_callback_add_parameter ($$, l->data); - g_object_unref (l->data); - } - g_list_free ($10); - } - } - | comment opt_attributes opt_access_modifier opt_modifiers DELEGATE type identifier opt_name_specifier opt_type_parameter_list OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS SEMICOLON + : comment opt_attributes opt_access_modifier opt_modifiers DELEGATE type identifier opt_name_specifier opt_type_parameter_list OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS SEMICOLON { ValaSourceReference *src; GList *l; diff --git a/vala/scanner.l b/vala/scanner.l index b1b81a7f..bff13c34 100644 --- a/vala/scanner.l +++ b/vala/scanner.l @@ -130,7 +130,6 @@ literal ({integer_literal}|{real_literal}|{character_literal}|{string_literal "abstract" { uploc; return ABSTRACT; } "base" { uploc; return BASE; } "break" { uploc; return BREAK; } -"callback" { uploc; return CALLBACK; } "case" { uploc; return CASE; } "catch" { uploc; return CATCH; } "class" { uploc; return CLASS; } diff --git a/vala/valaarray.vala b/vala/valaarray.vala index d1e5fa13..f618a4b4 100644 --- a/vala/valaarray.vala +++ b/vala/valaarray.vala @@ -135,7 +135,7 @@ public class Vala.Array : DataType { * name or null * @return the upper case name to be used in C code */ - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return null; } @@ -148,7 +148,7 @@ public class Vala.Array : DataType { * name or null * @return the lower case name to be used in C code */ - public override ref string get_lower_case_cname (string infix) { + public override string get_lower_case_cname (string infix) { return null; } @@ -171,7 +171,7 @@ public class Vala.Array : DataType { * * @return list of C header filenames for this data type */ - public override ref List get_cheader_filenames () { + public override List get_cheader_filenames () { if (element_type != null) { return element_type.get_cheader_filenames (); } else { diff --git a/vala/valaarraycreationexpression.vala b/vala/valaarraycreationexpression.vala index 376e03f7..aa2dfa01 100644 --- a/vala/valaarraycreationexpression.vala +++ b/vala/valaarraycreationexpression.vala @@ -1,6 +1,6 @@ /* valaarraycreationexpression.vala * - * Copyright (C) 2006 Raffaele Sandrini + * Copyright (C) 2006-2007 Raffaele Sandrini, Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,6 +18,7 @@ * * Author: * Raffaele Sandrini + * Jürg Billeter */ using GLib; @@ -56,7 +57,7 @@ public class Vala.ArrayCreationExpression : Expression { /** * Get the sizes for all dimensions ascending from left to right. */ - public ref List get_sizes () { + public List get_sizes () { return sizes.copy (); } diff --git a/vala/valaattribute.vala b/vala/valaattribute.vala index 2978afd8..bd1bdd66 100644 --- a/vala/valaattribute.vala +++ b/vala/valaattribute.vala @@ -1,6 +1,6 @@ /* valaattribute.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -80,7 +80,7 @@ public class Vala.Attribute : CodeNode { * @param name argument name * @return string value */ - public ref string get_string (string! name) { + public string get_string (string! name) { // FIXME: use hash table foreach (NamedArgument arg in args) { if (arg.name == name) { diff --git a/vala/valabaseaccess.vala b/vala/valabaseaccess.vala index 3530e895..aef86c13 100644 --- a/vala/valabaseaccess.vala +++ b/vala/valabaseaccess.vala @@ -1,6 +1,6 @@ /* valabaseaccess.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -40,7 +40,7 @@ public class Vala.BaseAccess : Expression { visitor.visit_base_access (this); } - public override ref string! to_string () { + public override string! to_string () { return "base"; } } diff --git a/vala/valablock.vala b/vala/valablock.vala index f25da4bd..3f73c4b6 100644 --- a/vala/valablock.vala +++ b/vala/valablock.vala @@ -1,6 +1,6 @@ /* valablock.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -58,7 +58,7 @@ public class Vala.Block : Statement { * * @return statement list */ - public ref List get_statements () { + public List get_statements () { return statement_list.copy (); } @@ -76,7 +76,7 @@ public class Vala.Block : Statement { * * @return variable declarator list */ - public ref List get_local_variables () { + public List get_local_variables () { return local_variables.copy (); } diff --git a/vala/valabooleanliteral.vala b/vala/valabooleanliteral.vala index 9d10994b..e62e669e 100644 --- a/vala/valabooleanliteral.vala +++ b/vala/valabooleanliteral.vala @@ -1,6 +1,6 @@ /* valabooleanliteral.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -47,7 +47,7 @@ public class Vala.BooleanLiteral : Literal { visitor.visit_boolean_literal (this); } - public override ref string! to_string () { + public override string! to_string () { if (value) { return "true"; } else { diff --git a/vala/valacallback.vala b/vala/valacallback.vala index c2d3fd7f..c1ad5887 100644 --- a/vala/valacallback.vala +++ b/vala/valacallback.vala @@ -81,7 +81,7 @@ public class Vala.Callback : DataType { * * @return parameter list */ - public ref List get_parameters () { + public List get_parameters () { return parameters.copy (); } diff --git a/vala/valaclass.vala b/vala/valaclass.vala index d960ec9c..66389cb9 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -110,7 +110,7 @@ public class Vala.Class : DataType { * * @return list of base types */ - public ref List get_base_types () { + public List get_base_types () { return base_types.copy (); } @@ -161,7 +161,7 @@ public class Vala.Class : DataType { * * @return list of fields */ - public ref List get_fields () { + public List get_fields () { return fields.copy (); } @@ -179,7 +179,7 @@ public class Vala.Class : DataType { * * @return list of methods */ - public ref List get_methods () { + public List get_methods () { return methods.copy (); } @@ -208,7 +208,7 @@ public class Vala.Class : DataType { * * @return list of properties */ - public ref List get_properties () { + public List get_properties () { return properties.copy (); } @@ -226,7 +226,7 @@ public class Vala.Class : DataType { * * @return list of signals */ - public ref List get_signals () { + public List get_signals () { return signals.copy (); } @@ -295,18 +295,18 @@ public class Vala.Class : DataType { return lower_case_csuffix; } - public override ref string get_lower_case_cname (string infix) { + public override string get_lower_case_cname (string infix) { if (infix == null) { infix = ""; } return "%s%s%s".printf (@namespace.get_lower_case_cprefix (), infix, get_lower_case_csuffix ()); } - public override ref string get_lower_case_cprefix () { + public override string get_lower_case_cprefix () { return "%s_".printf (get_lower_case_cname (null)); } - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return get_lower_case_cname (infix).up (); } diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala index c8abd5ba..6d1271a7 100644 --- a/vala/valacodecontext.vala +++ b/vala/valacodecontext.vala @@ -100,7 +100,7 @@ public class Vala.CodeContext { * * @return list of source files */ - public ref List get_source_files () { + public List get_source_files () { return source_files.copy (); } @@ -224,7 +224,7 @@ public class Vala.CodeContext { /* no deep copy available yet * var l = chain.copy (); */ - ref List l = null; + List l = null; foreach (SourceFile chain_file in chain) { l.append (chain_file); } @@ -247,7 +247,7 @@ public class Vala.CodeContext { bool cycle_start_found = false; foreach (SourceFile cycle_file in l) { - ref SourceFileCycle ref_cycle_file_cycle = cycle_file.cycle; + SourceFileCycle ref_cycle_file_cycle = cycle_file.cycle; if (!cycle_start_found) { if (cycle_file == dep) { cycle_start_found = true; @@ -269,7 +269,7 @@ public class Vala.CodeContext { /* file is in an other cycle, merge the two cycles */ /* broken memory management cycles.remove (cycle_file.cycle); */ - ref List newlist = null; + List newlist = null; foreach (SourceFileCycle oldcycle in cycles) { if (oldcycle != cycle_file.cycle) { newlist.append (oldcycle); diff --git a/vala/valacodenode.vala b/vala/valacodenode.vala index e5e187fc..1cdaeb75 100644 --- a/vala/valacodenode.vala +++ b/vala/valacodenode.vala @@ -116,7 +116,7 @@ public abstract class Vala.CodeNode { * * @return a string representation */ - public virtual ref string! to_string () { + public virtual string! to_string () { if (source_reference != null) { return source_reference.to_string (); } diff --git a/vala/valacreationmethod.vala b/vala/valacreationmethod.vala index 8c43a1b9..85e1075c 100644 --- a/vala/valacreationmethod.vala +++ b/vala/valacreationmethod.vala @@ -55,7 +55,7 @@ public class Vala.CreationMethod : Method { } } - public override ref string! get_default_cname () { + public override string! get_default_cname () { var parent = symbol.parent_symbol.node; assert (parent is DataType); if (name == null) { diff --git a/vala/valadatatype.vala b/vala/valadatatype.vala index 7ea6b433..53448ae8 100644 --- a/vala/valadatatype.vala +++ b/vala/valadatatype.vala @@ -175,7 +175,7 @@ public abstract class Vala.DataType : CodeNode { * name or null * @return the upper case name to be used in C code */ - public virtual ref string get_upper_case_cname (string infix = null) { + public virtual string get_upper_case_cname (string infix = null) { return null; } @@ -188,7 +188,7 @@ public abstract class Vala.DataType : CodeNode { * name or null * @return the lower case name to be used in C code */ - public virtual ref string get_lower_case_cname (string infix = null) { + public virtual string get_lower_case_cname (string infix = null) { return null; } @@ -198,7 +198,7 @@ public abstract class Vala.DataType : CodeNode { * * @return the lower case prefix to be used in C code */ - public virtual ref string get_lower_case_cprefix () { + public virtual string get_lower_case_cprefix () { return null; } @@ -218,7 +218,7 @@ public abstract class Vala.DataType : CodeNode { * * @return list of C header filenames for this data type */ - public virtual ref List get_cheader_filenames () { + public virtual List get_cheader_filenames () { if (cheader_filenames == null) { /* default to header filenames of the namespace */ foreach (string filename in @namespace.get_cheader_filenames ()) { diff --git a/vala/valaelementaccess.vala b/vala/valaelementaccess.vala index 6b2825a9..d5c613bd 100644 --- a/vala/valaelementaccess.vala +++ b/vala/valaelementaccess.vala @@ -1,6 +1,6 @@ /* valaelementaccess.vala * - * Copyright (C) 2006 Raffaele Sandrini + * Copyright (C) 2006-2007 Raffaele Sandrini, Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,6 +18,7 @@ * * Author: * Raffaele Sandrini + * Jürg Billeter */ using GLib; @@ -40,7 +41,7 @@ public class Vala.ElementAccess : Expression { indices.append (index); } - public ref List get_indices () { + public List get_indices () { return indices.copy (); } diff --git a/vala/valaenum.vala b/vala/valaenum.vala index b0bc5e7b..77ec23e9 100644 --- a/vala/valaenum.vala +++ b/vala/valaenum.vala @@ -91,7 +91,7 @@ public class Vala.Enum : DataType { return cname; } - public override ref string get_lower_case_cprefix () { + public override string get_lower_case_cprefix () { if (lower_case_cprefix == null) { lower_case_cprefix = "%s_".printf (get_lower_case_cname (null)); } @@ -105,14 +105,14 @@ public class Vala.Enum : DataType { return lower_case_csuffix; } - public override ref string get_lower_case_cname (string infix) { + public override string get_lower_case_cname (string infix) { if (infix == null) { infix = ""; } return "%s%s%s".printf (@namespace.get_lower_case_cprefix (), infix, get_lower_case_csuffix ()); } - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return "%s%s".printf (@namespace.get_lower_case_cprefix (), Namespace.camel_case_to_lower_case (name)).up (); } diff --git a/vala/valafield.vala b/vala/valafield.vala index cee3de89..3ccd10c8 100644 --- a/vala/valafield.vala +++ b/vala/valafield.vala @@ -143,7 +143,7 @@ public class Vala.Field : Member, Invokable, Lockable { } } - public ref List get_parameters () { + public List get_parameters () { if (!is_invokable ()) { return null; } diff --git a/vala/valaflags.vala b/vala/valaflags.vala index 8d837472..fb5f2b59 100644 --- a/vala/valaflags.vala +++ b/vala/valaflags.vala @@ -66,7 +66,7 @@ public class Vala.Flags : DataType { return cname; } - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return "%s%s".printf (@namespace.get_lower_case_cprefix (), Namespace.camel_case_to_lower_case (name)).up (); } diff --git a/vala/valaformalparameter.vala b/vala/valaformalparameter.vala index 042c622a..1ee8d38a 100644 --- a/vala/valaformalparameter.vala +++ b/vala/valaformalparameter.vala @@ -98,7 +98,7 @@ public class Vala.FormalParameter : CodeNode, Invokable { } } - public ref List get_parameters () { + public List get_parameters () { if (!is_invokable ()) { return null; } diff --git a/vala/valaforstatement.vala b/vala/valaforstatement.vala index e7d7238d..6017482b 100644 --- a/vala/valaforstatement.vala +++ b/vala/valaforstatement.vala @@ -78,7 +78,7 @@ public class Vala.ForStatement : Statement { * * @return initializer list */ - public ref List get_initializer () { + public List get_initializer () { return initializer.copy (); } @@ -97,7 +97,7 @@ public class Vala.ForStatement : Statement { * * @return iterator */ - public ref List get_iterator () { + public List get_iterator () { return iterator.copy (); } diff --git a/vala/valainitializerlist.vala b/vala/valainitializerlist.vala index b20528bc..ed055515 100644 --- a/vala/valainitializerlist.vala +++ b/vala/valainitializerlist.vala @@ -1,6 +1,6 @@ /* valainitializerlist.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -42,7 +42,7 @@ public class Vala.InitializerList : Expression { * * @return expression list */ - public ref List get_initializers () { + public List get_initializers () { return initializers.copy (); } diff --git a/vala/valaintegerliteral.vala b/vala/valaintegerliteral.vala index 671381f1..4883664b 100644 --- a/vala/valaintegerliteral.vala +++ b/vala/valaintegerliteral.vala @@ -1,6 +1,6 @@ /* valaintegerliteral.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -47,7 +47,7 @@ public class Vala.IntegerLiteral : Literal { visitor.visit_integer_literal (this); } - public override ref string! to_string () { + public override string! to_string () { return value; } diff --git a/vala/valainterface.vala b/vala/valainterface.vala index 2a764694..5534bbe7 100644 --- a/vala/valainterface.vala +++ b/vala/valainterface.vala @@ -82,7 +82,7 @@ public class Vala.Interface : DataType { * * @return list of base types */ - public ref List get_prerequisites () { + public List get_prerequisites () { return prerequisites.copy (); } @@ -100,7 +100,7 @@ public class Vala.Interface : DataType { * * @return list of methods */ - public ref List get_methods () { + public List get_methods () { return methods.copy (); } @@ -118,7 +118,7 @@ public class Vala.Interface : DataType { * * @return list of properties */ - public ref List get_properties () { + public List get_properties () { return properties.copy (); } @@ -136,7 +136,7 @@ public class Vala.Interface : DataType { * * @return list of signals */ - public ref List get_signals () { + public List get_signals () { return signals.copy (); } @@ -170,18 +170,18 @@ public class Vala.Interface : DataType { this.lower_case_csuffix = csuffix; } - public override ref string get_lower_case_cname (string infix) { + public override string get_lower_case_cname (string infix) { if (infix == null) { infix = ""; } return "%s%s%s".printf (@namespace.get_lower_case_cprefix (), infix, get_lower_case_csuffix ()); } - public override ref string get_lower_case_cprefix () { + public override string get_lower_case_cprefix () { return "%s_".printf (get_lower_case_cname (null)); } - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return get_lower_case_cname (infix).up (); } diff --git a/vala/valainterfacewriter.vala b/vala/valainterfacewriter.vala index 39a598e9..f53e22a4 100644 --- a/vala/valainterfacewriter.vala +++ b/vala/valainterfacewriter.vala @@ -301,8 +301,7 @@ public class Vala.InterfaceWriter : CodeVisitor { continue; } - if (param.type_reference.reference_to_value_type || - param.type_reference.takes_ownership) { + if (param.type_reference.is_ref) { write_string ("ref "); } else if (param.type_reference.is_out) { write_string ("out "); @@ -324,7 +323,11 @@ public class Vala.InterfaceWriter : CodeVisitor { if (param.type_reference.non_null) { write_string ("!"); } - + + if (param.type_reference.takes_ownership) { + write_string ("#"); + } + write_string (" "); write_identifier (param.name); diff --git a/vala/valainvocationexpression.vala b/vala/valainvocationexpression.vala index f2601ebc..afe10061 100644 --- a/vala/valainvocationexpression.vala +++ b/vala/valainvocationexpression.vala @@ -71,7 +71,7 @@ public class Vala.InvocationExpression : Expression { * * @return argument list */ - public ref List get_argument_list () { + public List get_argument_list () { return argument_list.copy (); } diff --git a/vala/valainvokable.vala b/vala/valainvokable.vala index f5dc56dc..240439dd 100644 --- a/vala/valainvokable.vala +++ b/vala/valainvokable.vala @@ -45,5 +45,5 @@ public interface Vala.Invokable /* : CodeNode */ { * * @return parameter list */ - public abstract ref List get_parameters (); + public abstract List get_parameters (); } diff --git a/vala/valalambdaexpression.vala b/vala/valalambdaexpression.vala index 03dbae63..7d8241ec 100644 --- a/vala/valalambdaexpression.vala +++ b/vala/valalambdaexpression.vala @@ -1,6 +1,6 @@ /* valalambdaexpression.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -84,7 +84,7 @@ public class Vala.LambdaExpression : Expression { * * @return parameter list */ - public ref List get_parameters () { + public List get_parameters () { return parameters.copy (); } diff --git a/vala/valaliteralexpression.vala b/vala/valaliteralexpression.vala index af96424f..b79f4a0a 100644 --- a/vala/valaliteralexpression.vala +++ b/vala/valaliteralexpression.vala @@ -1,6 +1,6 @@ /* valaliteralexpression.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -49,7 +49,7 @@ public class Vala.LiteralExpression : Expression { visitor.visit_literal_expression (this); } - public override ref string! to_string () { + public override string! to_string () { return literal.to_string (); } } diff --git a/vala/valalocalvariabledeclaration.vala b/vala/valalocalvariabledeclaration.vala index acf9427d..1bcbf328 100644 --- a/vala/valalocalvariabledeclaration.vala +++ b/vala/valalocalvariabledeclaration.vala @@ -1,6 +1,6 @@ /* valalocalvariabledeclaration.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -72,7 +72,7 @@ public class Vala.LocalVariableDeclaration : CodeNode { * * @return variable declarator list */ - public ref List get_variable_declarators () { + public List get_variable_declarators () { return variable_declarators.copy (); } diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index d8052ee2..42598022 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -82,7 +82,7 @@ public class Vala.MemberAccess : Expression { * * @return type argument list */ - public ref List get_type_arguments () { + public List get_type_arguments () { return type_argument_list.copy (); } @@ -98,7 +98,7 @@ public class Vala.MemberAccess : Expression { visitor.visit_member_access (this); } - public override ref string! to_string () { + public override string! to_string () { if (inner == null) { return member_name; } else { diff --git a/vala/valamemorymanager.vala b/vala/valamemorymanager.vala index b65bc4df..1a2411a7 100644 --- a/vala/valamemorymanager.vala +++ b/vala/valamemorymanager.vala @@ -196,7 +196,7 @@ public class Vala.MemoryManager : CodeVisitor { // TODO move this to semantic analyzer if (expr.call is MemberAccess) { var ma = (MemberAccess) expr.call; - ref TypeReference instance_type = ma.inner.static_type; + TypeReference instance_type = ma.inner.static_type; // trace type arguments back to the datatype where the method has been declared while (instance_type.data_type != msym.parent_symbol.node) { List base_types = null; diff --git a/vala/valamethod.vala b/vala/valamethod.vala index c2b340bd..0701c0fc 100644 --- a/vala/valamethod.vala +++ b/vala/valamethod.vala @@ -168,7 +168,7 @@ public class Vala.Method : Member, Invokable { parameters.append (param); } - public ref List get_parameters () { + public List get_parameters () { return parameters.copy (); } @@ -216,7 +216,7 @@ public class Vala.Method : Member, Invokable { * * @return the name to be used in C code by default */ - public virtual ref string! get_default_cname () { + public virtual string! get_default_cname () { var parent = symbol.parent_symbol.node; if (parent is DataType) { if (name.has_prefix ("_")) { @@ -237,7 +237,7 @@ public class Vala.Method : Member, Invokable { * * @return the name to be used in C code */ - public ref string! get_real_cname () { + public string! get_real_cname () { if (base_method != null || base_interface_method != null) { var parent = (Class) symbol.parent_symbol.node; return "%s_real_%s".printf (parent.get_lower_case_cname (null), name); diff --git a/vala/valanamespace.vala b/vala/valanamespace.vala index 67f027c7..4a06aa95 100644 --- a/vala/valanamespace.vala +++ b/vala/valanamespace.vala @@ -133,7 +133,7 @@ public class Vala.Namespace : CodeNode { * * @return struct list */ - public ref List get_structs () { + public List get_structs () { return structs.copy (); } @@ -142,7 +142,7 @@ public class Vala.Namespace : CodeNode { * * @return class list */ - public ref List get_classes () { + public List get_classes () { return classes.copy (); } @@ -151,7 +151,7 @@ public class Vala.Namespace : CodeNode { * * @return interface list */ - public ref List get_interfaces () { + public List get_interfaces () { return interfaces.copy (); } @@ -231,7 +231,7 @@ public class Vala.Namespace : CodeNode { * @param camel_case a string in camel case * @return the specified string converted to lower case */ - public static ref string! camel_case_to_lower_case (string! camel_case) { + public static string! camel_case_to_lower_case (string! camel_case) { String result = new String (""); weak string i = camel_case; @@ -326,7 +326,7 @@ public class Vala.Namespace : CodeNode { * * @return list of C header filenames for this namespace */ - public ref List get_cheader_filenames () { + public List get_cheader_filenames () { if (cheader_filenames == null) { if (!source_reference.file.pkg) { // don't add default include directives for VAPI files @@ -341,7 +341,7 @@ public class Vala.Namespace : CodeNode { * * @return header filename */ - public ref string get_cheader_filename () { + public string get_cheader_filename () { var s = new String (); bool first = true; foreach (string cheader_filename in get_cheader_filenames ()) { diff --git a/vala/valanullliteral.vala b/vala/valanullliteral.vala index 0356d01c..691db421 100644 --- a/vala/valanullliteral.vala +++ b/vala/valanullliteral.vala @@ -1,6 +1,6 @@ /* valanullliteral.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -40,7 +40,7 @@ public class Vala.NullLiteral : Literal { visitor.visit_null_literal (this); } - public override ref string! to_string () { + public override string! to_string () { return "null"; } } diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala index fa81d93a..5adf0222 100644 --- a/vala/valaobjectcreationexpression.vala +++ b/vala/valaobjectcreationexpression.vala @@ -1,6 +1,6 @@ /* valaobjectcreationexpression.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -72,7 +72,7 @@ public class Vala.ObjectCreationExpression : Expression { * * @return argument list */ - public ref List get_argument_list () { + public List get_argument_list () { return argument_list.copy (); } diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 517959b5..f99fcf6a 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -71,7 +71,7 @@ public class Vala.Parser : CodeVisitor { * * @return saved comment */ - public ref string pop_comment () { + public string pop_comment () { if (comment == null) { return null; } diff --git a/vala/valapointer.vala b/vala/valapointer.vala index 12b3afea..34d02098 100644 --- a/vala/valapointer.vala +++ b/vala/valapointer.vala @@ -56,11 +56,11 @@ public class Vala.Pointer : DataType { return false; } - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return null; } - public override ref string get_lower_case_cname (string infix) { + public override string get_lower_case_cname (string infix) { return null; } @@ -68,7 +68,7 @@ public class Vala.Pointer : DataType { return null; } - public override ref List get_cheader_filenames () { + public override List get_cheader_filenames () { return referent_type.get_cheader_filenames (); } diff --git a/vala/valaproperty.vala b/vala/valaproperty.vala index 04765aa2..0de75331 100644 --- a/vala/valaproperty.vala +++ b/vala/valaproperty.vala @@ -146,7 +146,7 @@ public class Vala.Property : Member, Lockable { * * @return the upper case name to be used in C code */ - public ref string! get_upper_case_cname () { + public string! get_upper_case_cname () { return "%s_%s".printf (((DataType) symbol.parent_symbol.node).get_lower_case_cname (null), Namespace.camel_case_to_lower_case (name)).up (); } @@ -155,7 +155,7 @@ public class Vala.Property : Member, Lockable { * * @return string literal to be used in C code */ - public ref CCodeConstant! get_canonical_cconstant () { + public CCodeConstant! get_canonical_cconstant () { var str = new String ("\""); string i = name; diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 7d8bdadb..12375d71 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -209,7 +209,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { current_class = null; } - private ref List get_all_prerequisites (Interface! iface) { + private List get_all_prerequisites (Interface! iface) { List ret = null; foreach (TypeReference prereq in iface.get_prerequisites ()) { @@ -998,7 +998,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { expr.static_type = expr.literal.static_type; } - ref TypeReference get_static_type_for_node (CodeNode! node) { + private TypeReference get_static_type_for_node (CodeNode! node) { if (node is Field) { var f = (Field) node; return f.type_reference; @@ -1163,7 +1163,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { /* null can be cast to any reference or array type or pointer type */ if (expected_type.type_parameter != null || expected_type.data_type.is_reference_type () || - expected_type.reference_to_value_type || + expected_type.is_out || expected_type.data_type is Pointer || expected_type.data_type is Array || expected_type.data_type is Callback || @@ -1333,7 +1333,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { var msym = expr.call.symbol_reference; - ref TypeReference ret_type; + TypeReference ret_type; List params; if (msym.node is Invokable) { @@ -1364,7 +1364,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { expr.error = true; return; } else { - ref TypeReference instance_type = ma.inner.static_type; + TypeReference instance_type = ma.inner.static_type; // trace type arguments back to the datatype where the method has been declared while (instance_type.data_type != msym.parent_symbol.node) { List base_types = null; @@ -1787,7 +1787,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { expr.static_type.takes_ownership = false; } - private ref TypeReference get_arithmetic_result_type (TypeReference! left_type, TypeReference! right_type) { + private TypeReference get_arithmetic_result_type (TypeReference! left_type, TypeReference! right_type) { if (!(left_type.data_type is Struct) || !(right_type.data_type is Struct)) { // at least one operand not struct return null; @@ -2071,7 +2071,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { expr.static_type = compute_common_base_type (types); } - private ref string get_lambda_name () { + private string get_lambda_name () { var result = "__lambda%d".printf (next_lambda_id); next_lambda_id++; diff --git a/vala/valasignal.vala b/vala/valasignal.vala index 636e6a82..88ea7533 100644 --- a/vala/valasignal.vala +++ b/vala/valasignal.vala @@ -77,7 +77,7 @@ public class Vala.Signal : Member, Invokable, Lockable { parameters.append (param); } - public ref List get_parameters () { + public List get_parameters () { return parameters.copy (); } @@ -133,7 +133,7 @@ public class Vala.Signal : Member, Invokable, Lockable { * * @return string literal to be used in C code */ - public ref CCodeConstant! get_canonical_cconstant () { + public CCodeConstant! get_canonical_cconstant () { var str = new String ("\""); string i = name; diff --git a/vala/valasourcefile.vala b/vala/valasourcefile.vala index 9728dd2f..8fed003f 100644 --- a/vala/valasourcefile.vala +++ b/vala/valasourcefile.vala @@ -116,7 +116,7 @@ public class Vala.SourceFile { * * @return using directive list */ - public ref List get_using_directives () { + public List get_using_directives () { return using_directives.copy (); } @@ -143,7 +143,7 @@ public class Vala.SourceFile { * * @return namespace list */ - public ref List get_namespaces () { + public List get_namespaces () { return namespaces.copy (); } diff --git a/vala/valasourcereference.vala b/vala/valasourcereference.vala index 8bc2f2d6..71b7c67d 100644 --- a/vala/valasourcereference.vala +++ b/vala/valasourcereference.vala @@ -1,6 +1,6 @@ /* valasourcereference.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -97,7 +97,7 @@ public class Vala.SourceReference { * * @return human-readable string */ - public ref string! to_string () { + public string! to_string () { return ("%s:%d.%d-%d.%d".printf (file.filename, first_line, first_column, last_line, last_column)); } } diff --git a/vala/valastringliteral.vala b/vala/valastringliteral.vala index 82485910..d6ec35dd 100644 --- a/vala/valastringliteral.vala +++ b/vala/valastringliteral.vala @@ -1,6 +1,6 @@ /* valastringliteral.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -48,7 +48,7 @@ public class Vala.StringLiteral : Literal { * * @return the unescaped string */ - public ref string eval () { + public string eval () { if (value == null) { return null; } diff --git a/vala/valastruct.vala b/vala/valastruct.vala index 0cf74828..ac34755e 100644 --- a/vala/valastruct.vala +++ b/vala/valastruct.vala @@ -99,7 +99,7 @@ public class Vala.Struct : DataType { * * @return list of fields */ - public ref List get_fields () { + public List get_fields () { return fields.copy (); } @@ -119,7 +119,7 @@ public class Vala.Struct : DataType { * * @return list of methods */ - public ref List get_methods () { + public List get_methods () { return methods.copy (); } @@ -164,7 +164,7 @@ public class Vala.Struct : DataType { this.const_cname = cname; } - public override ref string get_lower_case_cprefix () { + public override string get_lower_case_cprefix () { if (lower_case_cprefix == null) { lower_case_cprefix = "%s_".printf (get_lower_case_cname (null)); } @@ -178,14 +178,14 @@ public class Vala.Struct : DataType { return lower_case_csuffix; } - public override ref string get_lower_case_cname (string infix) { + public override string get_lower_case_cname (string infix) { if (infix == null) { infix = ""; } return "%s%s%s".printf (@namespace.get_lower_case_cprefix (), infix, get_lower_case_csuffix ()); } - public override ref string get_upper_case_cname (string infix) { + public override string get_upper_case_cname (string infix) { return get_lower_case_cname (infix).up (); } @@ -415,7 +415,7 @@ public class Vala.Struct : DataType { * * @return list of base types */ - public ref List get_base_types () { + public List get_base_types () { return base_types.copy (); } diff --git a/vala/valaswitchsection.vala b/vala/valaswitchsection.vala index 0bb6fa7a..f7fd10e2 100644 --- a/vala/valaswitchsection.vala +++ b/vala/valaswitchsection.vala @@ -1,6 +1,6 @@ /* valaswitchsection.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -53,7 +53,7 @@ public class Vala.SwitchSection : CodeNode { * * @return switch label list */ - public ref List get_labels () { + public List get_labels () { return labels.copy (); } @@ -81,7 +81,7 @@ public class Vala.SwitchSection : CodeNode { * * @return statement list */ - public ref List get_statements () { + public List get_statements () { return statement_list.copy (); } diff --git a/vala/valaswitchstatement.vala b/vala/valaswitchstatement.vala index cf7edc64..b7c5a23d 100644 --- a/vala/valaswitchstatement.vala +++ b/vala/valaswitchstatement.vala @@ -1,6 +1,6 @@ /* valaswitchstatement.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -68,7 +68,7 @@ public class Vala.SwitchStatement : Statement { * * @return section list */ - public ref List get_sections () { + public List get_sections () { return sections.copy (); } diff --git a/vala/valasymbol.vala b/vala/valasymbol.vala index d93eff73..e5c5941f 100644 --- a/vala/valasymbol.vala +++ b/vala/valasymbol.vala @@ -1,6 +1,6 @@ /* valasymbol.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -73,7 +73,7 @@ public class Vala.Symbol { * * @return full name */ - public ref string get_full_name () { + public string get_full_name () { if (parent_symbol == null) { return name; } diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index a2f958ce..e2c9f017 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -142,16 +142,6 @@ public class Vala.SymbolResolver : CodeVisitor { public override void visit_formal_parameter (FormalParameter! p) { p.accept_children (this); - - if (!p.ellipsis && p.type_reference.is_ref) { - if ((p.type_reference.data_type != null && - p.type_reference.data_type.is_reference_type ()) || - p.type_reference.type_parameter != null) { - p.type_reference.takes_ownership = true; - } else { - p.type_reference.reference_to_value_type = true; - } - } } public override void visit_property (Property! prop) { diff --git a/vala/valatypereference.vala b/vala/valatypereference.vala index f3824ced..52371f5d 100644 --- a/vala/valatypereference.vala +++ b/vala/valatypereference.vala @@ -29,12 +29,6 @@ using GLib; */ public class Vala.TypeReference : CodeNode { /** - * Specifies that the expression is a reference to a value type. - * References to value types are used in ref parameters. - */ - public bool reference_to_value_type { get; set; } - - /** * Specifies that the expression transfers ownership of its value. */ public bool transfers_ownership { get; set; } @@ -46,8 +40,7 @@ public class Vala.TypeReference : CodeNode { public bool takes_ownership { get; set; } /** - * Specifies that the expression is a reference to a reference type. - * References to reference types are used in out parameters. + * Specifies that the expression is a reference used in out parameters. */ public bool is_out { get; set; } @@ -101,11 +94,10 @@ public class Vala.TypeReference : CodeNode { public int pointer_level { get; set; } /** - * The ref modifier has been specified, may only be used with unresolved - * type references. + * Specifies that the expression is a reference used in ref parameters. */ public bool is_ref { get; set; } - + /** * The weak modifier has been specified. May only be used with * unresolved type references. @@ -138,7 +130,7 @@ public class Vala.TypeReference : CodeNode { * @param source reference to source code * @return newly created type reference */ - public static ref TypeReference new_from_expression (Expression! expr) { + public static TypeReference new_from_expression (Expression! expr) { string ns = null; string type_name = null; if (expr is MemberAccess) { @@ -182,7 +174,7 @@ public class Vala.TypeReference : CodeNode { * * @return type argument list */ - public ref List get_type_arguments () { + public List get_type_arguments () { return type_argument_list.copy (); } @@ -206,7 +198,7 @@ public class Vala.TypeReference : CodeNode { * * @return the type string to be used in C code */ - public ref string get_cname (bool var_type = false, bool const_type = false) { + public string get_cname (bool var_type = false, bool const_type = false) { if (data_type == null && type_parameter == null) { if (var_type) { return "gpointer"; @@ -217,9 +209,9 @@ public class Vala.TypeReference : CodeNode { string ptr; string arr; - if (type_parameter != null || (!data_type.is_reference_type () && !reference_to_value_type)) { + if (type_parameter != null || (!data_type.is_reference_type () && !is_ref && !is_out)) { ptr = ""; - } else if ((data_type.is_reference_type () && !is_out) || reference_to_value_type) { + } else if ((data_type.is_reference_type () && !is_ref && !is_out) || (!data_type.is_reference_type () && (is_ref || is_out))) { ptr = "*"; } else { ptr = "**"; @@ -241,7 +233,7 @@ public class Vala.TypeReference : CodeNode { * * @return the type string to be used in C code const declarations */ - public ref string get_const_cname () { + public string get_const_cname () { string ptr; DataType t; /* FIXME: dirty hack to make constant arrays possible */ @@ -265,7 +257,7 @@ public class Vala.TypeReference : CodeNode { * * @return display name */ - public ref string! to_string () { + public string! to_string () { if (data_type != null) { return data_type.symbol.get_full_name (); } else if (type_parameter != null) { @@ -280,10 +272,9 @@ public class Vala.TypeReference : CodeNode { * * @return copy of this type reference */ - public ref TypeReference! copy () { + public TypeReference! copy () { var result = new TypeReference (); result.source_reference = source_reference; - result.reference_to_value_type = reference_to_value_type; result.transfers_ownership = transfers_ownership; result.takes_ownership = takes_ownership; result.is_out = is_out; @@ -314,15 +305,15 @@ public class Vala.TypeReference : CodeNode { * otherwise */ public bool equals (TypeReference! type2) { - if (type2.reference_to_value_type != reference_to_value_type) { - return false; - } if (type2.transfers_ownership != transfers_ownership) { return false; } if (type2.takes_ownership != takes_ownership) { return false; } + if (type2.is_ref != is_ref) { + return false; + } if (type2.is_out != is_out) { return false; } @@ -355,15 +346,15 @@ public class Vala.TypeReference : CodeNode { * @return true if this type reference is stricter or equal */ public bool stricter (TypeReference! type2) { - if (type2.reference_to_value_type != reference_to_value_type) { - return false; - } if (type2.transfers_ownership != transfers_ownership) { return false; } if (type2.takes_ownership != takes_ownership) { return false; } + if (type2.is_ref != is_ref) { + return false; + } if (type2.is_out != is_out) { return false; } diff --git a/vala/valavariabledeclarator.vala b/vala/valavariabledeclarator.vala index 321a5b5d..4a3ae819 100644 --- a/vala/valavariabledeclarator.vala +++ b/vala/valavariabledeclarator.vala @@ -1,6 +1,6 @@ /* valavariabledeclarator.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -81,7 +81,7 @@ public class Vala.VariableDeclarator : CodeNode, Invokable { visitor.visit_variable_declarator (this); } - public ref List get_parameters () { + public List get_parameters () { if (!is_invokable ()) { return null; } diff --git a/vapi/cairo.vala b/vapi/cairo.vala index 5e22a4d3..a265c224 100644 --- a/vapi/cairo.vala +++ b/vapi/cairo.vala @@ -34,7 +34,7 @@ namespace Cairo { public weak Surface get_target (); public void push_group (); public void push_group_with_content (Content content); - public ref Pattern pop_group (); + public Pattern pop_group (); public void pop_group_to_source (); public weak Surface get_group_target (); @@ -94,8 +94,8 @@ namespace Cairo { public void copy_page (); public void show_page (); - public ref Path copy_path (); - public ref Path copy_path_flat (); + public Path copy_path (); + public Path copy_path_flat (); public void append_path (Path path); diff --git a/vapi/glib-2.0.vala b/vapi/glib-2.0.vala index 35827585..ca8b7bdb 100644 --- a/vapi/glib-2.0.vala +++ b/vapi/glib-2.0.vala @@ -38,7 +38,7 @@ public struct constpointer { public struct char { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%hhi"); + public string! to_string (string! format = "%hhi"); public bool isalnum (); public bool isalpha (); public bool iscntrl (); @@ -61,7 +61,7 @@ public struct char { public struct uchar { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%hhu"); + public string! to_string (string! format = "%hhu"); } [CCode (cname = "gint", cheader_filename = "glib.h", type_id = "G_TYPE_INT", marshaller_type_name = "INT", get_value_function = "g_value_get_int", set_value_function = "g_value_set_int", default_value = "0")] @@ -74,7 +74,7 @@ public struct int { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%i"); + public string! to_string (string! format = "%i"); [CCode (cname = "CLAMP")] public int clamp (int low, int high); @@ -90,7 +90,7 @@ public struct uint { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%u"); + public string! to_string (string! format = "%u"); [CCode (cname = "CLAMP")] public uint clamp (uint low, uint high); @@ -106,7 +106,7 @@ public struct short { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%hi"); + public string! to_string (string! format = "%hi"); } [CCode (cname = "gushort", cheader_filename = "glib.h", default_value = "0U")] @@ -119,7 +119,7 @@ public struct ushort { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%hu"); + public string! to_string (string! format = "%hu"); } [CCode (cname = "glong", cheader_filename = "glib.h", type_id = "G_TYPE_LONG", marshaller_type_name = "LONG", get_value_function = "g_value_get_long", set_value_function = "g_value_set_long", default_value = "0L")] @@ -132,7 +132,7 @@ public struct long { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%li"); + public string! to_string (string! format = "%li"); } [CCode (cname = "gulong", cheader_filename = "glib.h", type_id = "G_TYPE_ULONG", marshaller_type_name = "ULONG", get_value_function = "g_value_get_ulong", set_value_function = "g_value_set_ulong", default_value = "0UL")] @@ -145,7 +145,7 @@ public struct ulong { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%lu"); + public string! to_string (string! format = "%lu"); } [CCode (cname = "gint8", cheader_filename = "glib.h", type_id = "G_TYPE_CHAR", marshaller_type_name = "CHAR", get_value_function = "g_value_get_char", set_value_function = "g_value_set_char", default_value = "0")] @@ -169,7 +169,7 @@ public struct uint8 { public static uint8 MAX; [CCode (cname = "g_strdup_printf"), InstanceLast] - public ref string! to_string (string! format = "%hhu"); + public string! to_string (string! format = "%hhu"); } [CCode (cname = "gint16", cheader_filename = "glib.h", default_value = "0")] @@ -181,7 +181,7 @@ public struct int16 { public static int16 MAX; [CCode (cname = "g_strdup_printf"), InstanceLast] - public ref string! to_string (string! format = "%hi"); + public string! to_string (string! format = "%hi"); } [CCode (cname = "guint16", cheader_filename = "glib.h", default_value = "0U")] @@ -193,7 +193,7 @@ public struct uint16 { public static uint16 MAX; [CCode (cname = "g_strdup_printf"), InstanceLast] - public ref string! to_string (string! format = "%hu"); + public string! to_string (string! format = "%hu"); } [CCode (cname = "gint32", cheader_filename = "glib.h", default_value = "0")] @@ -205,7 +205,7 @@ public struct int32 { public static int32 MAX; [CCode (cname = "g_strdup_printf"), InstanceLast] - public ref string! to_string (string! format = "%i"); + public string! to_string (string! format = "%i"); } [CCode (cname = "guint32", cheader_filename = "glib.h", default_value = "0U")] @@ -218,7 +218,7 @@ public struct uint32 { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%u"); + public string! to_string (string! format = "%u"); } [CCode (cname = "gint64", cheader_filename = "glib.h", type_id = "G_TYPE_INT64", marshaller_type_name = "INT64", get_value_function = "g_value_get_int64", set_value_function = "g_value_set_int64", default_value = "0LL")] @@ -231,7 +231,7 @@ public struct int64 { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%lli"); + public string! to_string (string! format = "%lli"); } [CCode (cname = "guint64", cheader_filename = "glib.h", type_id = "G_TYPE_UINT64", marshaller_type_name = "UINT64", get_value_function = "g_value_get_uint64", set_value_function = "g_value_set_uint64", default_value = "0ULL")] @@ -244,7 +244,7 @@ public struct uint64 { [InstanceLast ()] [CCode (cname = "g_strdup_printf")] - public ref string! to_string (string! format = "%llu"); + public string! to_string (string! format = "%llu"); } [CCode (cname = "float", cheader_filename = "glib.h,float.h,math.h", type_id = "G_TYPE_FLOAT", marshaller_type_name = "FLOAT", get_value_function = "g_value_get_float", set_value_function = "g_value_set_float", default_value = "0.0F")] @@ -287,7 +287,7 @@ public struct float { public int is_infinity (); [CCode (cname = "g_strdup_printf"), InstanceLast] - public ref string! to_string (string! format = "%g"); + public string! to_string (string! format = "%g"); } [CCode (cname = "double", cheader_filename = "glib.h,float.h,math.h", type_id = "G_TYPE_DOUBLE", marshaller_type_name = "DOUBLE", get_value_function = "g_value_get_double", set_value_function = "g_value_set_double", default_value = "0.0")] @@ -330,7 +330,7 @@ public struct double { public int is_infinity (); [CCode (cname = "g_strdup_printf"), InstanceLast] - public ref string! to_string (string! format = "%g"); + public string! to_string (string! format = "%g"); } [CCode (cname = "gunichar", cprefix = "g_unichar_", cheader_filename = "glib.h", get_value_function = "g_value_get_int", set_value_function = "g_value_set_int", default_value = "0U")] @@ -448,19 +448,19 @@ public struct string { [CCode (cname = "g_str_has_suffix")] public bool has_suffix (string! suffix); [CCode (cname = "g_strdup_printf"), PrintfFormat] - public ref string printf (...); + public string printf (...); [CCode (cname = "g_strconcat")] - public ref string concat (string string2, ...); + public string concat (string string2, ...); [CCode (cname = "g_strndup")] - public ref string ndup (ulong n); /* FIXME: only UTF-8 */ + public string ndup (ulong n); /* FIXME: only UTF-8 */ [CCode (cname = "g_strcompress")] - public ref string compress (); + public string compress (); [CCode (cname = "g_strsplit")] [NoArrayLength] - public ref string[] split (string! delimiter, int max_tokens = 0); + public string[] split (string! delimiter, int max_tokens = 0); [CCode (cname = "g_strsplit_set")] [NoArrayLength] - public ref string[] split_set (string! delimiters, int max_tokens = 0); + public string[] split_set (string! delimiters, int max_tokens = 0); [CCode (cname = "g_strjoinv")] [NoArrayLength] public static string joinv (string! separator, string[] str_array); @@ -485,16 +485,16 @@ public struct string { [CCode (cname = "g_utf8_strrchr")] public weak string rchr (long len, unichar c); [CCode (cname = "g_utf8_strreverse")] - public ref string! reverse (int len = -1); + public string! reverse (int len = -1); [CCode (cname = "g_utf8_validate")] public bool validate (long max_len = -1, out string end = null); [CCode (cname = "g_utf8_strup")] - public ref string up (long len = -1); + public string up (long len = -1); [CCode (cname = "g_utf8_strdown")] - public ref string down (long len = -1); + public string down (long len = -1); [CCode (cname = "g_utf8_casefold")] - public ref string casefold (long len = -1); + public string casefold (long len = -1); [CCode (cname = "g_utf8_collate")] public int collate (string str2); @@ -545,15 +545,15 @@ namespace GLib { [CCode (cname = "G_TYPE_IS_VALUE_TYPE")] public bool is_value_type (); - //public ref Type[] children (ref uint n_children = null); + //public Type[] children (out uint n_children = null); public uint depth (); public static Type from_name (string! name); - //public ref Type[] interfaces (ref uint n_interfaces = null); + //public Type[] interfaces (out uint n_interfaces = null); public bool is_a (Type is_a_type); public string! name (); public Type parent (); - public ref TypeClass class_ref (); + public TypeClass class_ref (); } @@ -578,7 +578,7 @@ namespace GLib { [ReferenceType ()] public struct ObjectClass { - public ref ParamSpec[] list_properties (ref int n_properties); + public ParamSpec[] list_properties (out int n_properties); } public struct ObjectConstructParam { @@ -613,7 +613,7 @@ namespace GLib { } [NoArrayLength ()] - public callback bool SignalEmissionHook (SignalInvocationHint ihint, uint n_param_values, Value[] param_values, pointer data); + public static delegate bool SignalEmissionHook (SignalInvocationHint ihint, uint n_param_values, Value[] param_values, pointer data); [CCode (cprefix = "G_SIGNAL_")] public enum SignalFlags { @@ -631,7 +631,7 @@ namespace GLib { SWAPPED } - public callback void Callback (); + public static delegate void Callback (); public struct Closure { } @@ -684,9 +684,9 @@ namespace GLib { public void release (); public bool is_owner (); public bool wait (Cond cond, Mutex mutex); - public bool prepare (ref int priority); + public bool prepare (out int priority); [NoArrayLength ()] - public int query (int max_priority, ref int timeout_, PollFD[] fds, int n_fds); + public int query (int max_priority, out int timeout_, PollFD[] fds, int n_fds); public int check (int max_priority, PollFD[] fds, int n_fds); public void dispatch (); public void set_poll_func (PollFunc func); @@ -697,7 +697,7 @@ namespace GLib { public weak Source current_source (); } - public callback int PollFunc (PollFD[] ufds, uint nfsd, int timeout_); + public static delegate int PollFunc (PollFD[] ufds, uint nfsd, int timeout_); public struct TimeoutSource : Source { public TimeoutSource (uint interval); @@ -722,7 +722,7 @@ namespace GLib { public struct Pid { } - public callback void ChildWatchFunc (Pid pid, int status, pointer data); + public static delegate void ChildWatchFunc (Pid pid, int status, pointer data); [ReferenceType ()] public struct ChildWatchSource : Source { @@ -757,18 +757,18 @@ namespace GLib { public void set_callback_indirect (pointer callback_data, SourceCallbackFuncs callback_funcs); public void add_poll (ref PollFD fd); public void remove_poll (ref PollFD fd); - public void get_current_time (ref TimeVal timeval); + public void get_current_time (out TimeVal timeval); public static void remove (uint id); public static bool remove_by_funcs_user_data (pointer user_data); public static bool remove_by_user_data (pointer user_data); } - public callback void SourceDummyMarshal (); + public static delegate void SourceDummyMarshal (); - public callback bool SourcePrepareFunc (Source source, ref int timeout_); - public callback bool SourceCheckFunc (Source source); - public callback bool SourceDispatchFunc (Source source, SourceFunc _callback, pointer user_data); - public callback void SourceFinalizeFunc (Source source); + public static delegate bool SourcePrepareFunc (Source source, out int timeout_); + public static delegate bool SourceCheckFunc (Source source); + public static delegate bool SourceDispatchFunc (Source source, SourceFunc _callback, pointer user_data); + public static delegate void SourceFinalizeFunc (Source source); [ReferenceType ()] public struct SourceFuncs { @@ -778,9 +778,9 @@ namespace GLib { public SourceFinalizeFunc finalize; } - public callback void SourceCallbackRefFunc (pointer cb_data); - public callback void SourceCallbackUnrefFunc (pointer cb_data); - public callback void SourceCallbackGetFunc (pointer cb_data, Source source, SourceFunc func, pointer data); + public static delegate void SourceCallbackRefFunc (pointer cb_data); + public static delegate void SourceCallbackUnrefFunc (pointer cb_data); + public static delegate void SourceCallbackGetFunc (pointer cb_data, Source source, SourceFunc func, pointer data); [ReferenceType ()] public struct SourceCallbackFuncs { @@ -789,15 +789,15 @@ namespace GLib { public SourceCallbackGetFunc @get; } - public callback bool SourceFunc (pointer data); + public static delegate bool SourceFunc (pointer data); /* Thread support */ [ReferenceType ()] public struct ThreadFunctions { } - public callback pointer ThreadFunc (pointer data); - public callback void Func (pointer data, pointer user_data); + public static delegate pointer ThreadFunc (pointer data); + public static delegate void Func (pointer data, pointer user_data); public enum ThreadPriority { LOW, @@ -889,9 +889,9 @@ namespace GLib { [ReferenceType (free_function = "g_module_close")] public struct Module { public static bool supported (); - public static ref string build_path (string directory, string module_name); - public static ref Module open (string file_name, ModuleFlags @flags); - public bool symbol (string! symbol_name, ref pointer symbol); + public static string build_path (string directory, string module_name); + public static Module open (string file_name, ModuleFlags @flags); + public bool symbol (string! symbol_name, out pointer symbol); public weak string name (); public void make_resident (); public weak string error (); @@ -921,12 +921,12 @@ namespace GLib { [ReferenceType (dup_function = "g_io_channel_ref", free_function = "g_io_channel_unref")] public struct IOChannel { public IOChannel.file (string! filename, string! mode, out Error error); - public IOStatus read_chars (string! buf, ulong count, ref ulong bytes_read, out Error error); - public IOStatus read_unichar (ref unichar thechar, out Error error); - public IOStatus read_line (out string str_return, ref ulong length, ref ulong terminator_pos, out Error error); - public IOStatus read_line_string (String! buffer, ref ulong terminator_pos, out Error error); - public IOStatus read_to_end (out string str_return, ref ulong length, out Error error); - public IOStatus write_chars (string! buf, long count, ref ulong bytes_written, out Error error); + public IOStatus read_chars (string! buf, ulong count, out ulong bytes_read, out Error error); + public IOStatus read_unichar (out unichar thechar, out Error error); + public IOStatus read_line (out string str_return, out ulong length, out ulong terminator_pos, out Error error); + public IOStatus read_line_string (String! buffer, out ulong terminator_pos, out Error error); + public IOStatus read_to_end (out string str_return, out ulong length, out Error error); + public IOStatus write_chars (string! buf, long count, out ulong bytes_written, out Error error); public IOStatus write_unichar (unichar thechar, out Error error); public IOStatus flush (out Error error); public IOStatus seek_position (int64 offset, SeekType type, out Error error); @@ -1013,30 +1013,30 @@ namespace GLib { /* Character Set Conversions */ - public static ref string convert (string! str, long len, string! to_codeset, string! from_codeset, ref int bytes_read, ref int bytes_written, out Error error); + public static string convert (string! str, long len, string! to_codeset, string! from_codeset, out int bytes_read, out int bytes_written, out Error error); public struct IConv { [CCode (cname = "g_iconv_open")] public Iconv (string to_codeset, string from_codeset); [CCode (cname = "g_iconv")] - public uint iconv (out string inbuf, ref uint inbytes_left, out string outbuf, ref uint outbytes_left); + public uint iconv (out string inbuf, out uint inbytes_left, out string outbuf, out uint outbytes_left); public int close (); } public struct Filename { - public static ref string from_uri (string! uri, out string hostname = null, out Error error = null); - public static ref string to_uri (string! filename, string hostname = null, out Error error = null); - public static ref string display_basename (string! filename); + public static string from_uri (string! uri, out string hostname = null, out Error error = null); + public static string to_uri (string! filename, string hostname = null, out Error error = null); + public static string display_basename (string! filename); } /* Base64 Encoding */ public struct Base64 { - public static int encode_step (string! _in, int len, bool break_lines, string _out, ref int state, ref int save); - public static int encode_close (bool break_lines, string _out, ref int state, ref int save); - public static ref string encode (string! data, int len); - public static int decode_step (string! _in, int len, ref int state, ref uint save); - public static ref string decode (string! text, ref ulong out_len); + public static int encode_step (string! _in, int len, bool break_lines, string _out, out int state, out int save); + public static int encode_close (bool break_lines, string _out, out int state, out int save); + public static string encode (string! data, int len); + public static int decode_step (string! _in, int len, out int state, out uint save); + public static string decode (string! text, out ulong out_len); } /* Date and Time Functions */ @@ -1202,16 +1202,16 @@ namespace GLib { [CCode (cname = "g_get_home_dir")] public static weak string get_home_dir (); [CCode (cname = "g_get_current_dir")] - public static ref string get_current_dir (); + public static string get_current_dir (); } public struct Path { public static bool is_absolute (string! file_name); public static weak string skip_root (string! file_name); - public static ref string get_basename (string file_name); - public static ref string get_dirname (string file_name); + public static string get_basename (string file_name); + public static string get_dirname (string file_name); [CCode (cname = "g_build_filename")] - public static ref string build_filename (string first_element, ...); + public static string build_filename (string first_element, ...); } public static class Bit { @@ -1266,18 +1266,18 @@ namespace GLib { FILE_AND_ARGV_ZERO } - public callback void SpawnChildSetupFunc (pointer user_data); + public static delegate void SpawnChildSetupFunc (pointer user_data); [CCode (cprefix = "g_")] public struct Process { [NoArrayLength ()] - public static bool spawn_async_with_pipes (string working_directory, string[] argv, string[] envp, SpawnFlags _flags, SpawnChildSetupFunc child_setup, pointer user_data, Pid child_pid, ref int standard_input, ref int standard_output, ref int standard_error, out Error error); + public static bool spawn_async_with_pipes (string working_directory, string[] argv, string[] envp, SpawnFlags _flags, SpawnChildSetupFunc child_setup, pointer user_data, Pid child_pid, out int standard_input, out int standard_output, out int standard_error, out Error error); [NoArrayLength ()] public static bool spawn_async (string working_directory, string[] argv, string[] envp, SpawnFlags _flags, SpawnChildSetupFunc child_setup, pointer user_data, Pid child_pid, out Error error); [NoArrayLength ()] - public static bool spawn_sync (string working_directory, string[] argv, string[] envp, SpawnFlags _flags, SpawnChildSetupFunc child_setup, pointer user_data, out string standard_output, out string standard_error, ref int exit_status, out Error error); + public static bool spawn_sync (string working_directory, string[] argv, string[] envp, SpawnFlags _flags, SpawnChildSetupFunc child_setup, pointer user_data, out string standard_output, out string standard_error, out int exit_status, out Error error); public static bool spawn_command_line_async (string! command_line, out Error error); - public static bool spawn_command_line_sync (string! command_line, out string standard_output, out string standard_error, ref int exit_status, out Error error); + public static bool spawn_command_line_sync (string! command_line, out string standard_output, out string standard_error, out int exit_status, out Error error); public static void close_pid (Pid pid); } @@ -1313,11 +1313,11 @@ namespace GLib { [CCode (cprefix = "g_file_", cheader_filename = "glib/gstdio.h")] public struct FileUtils { - public static bool get_contents (string! filename, out string contents, ref long length, out Error error); + public static bool get_contents (string! filename, out string contents, out long length, out Error error); public static bool set_contents (string! filename, string contents, long length, out Error error); public static bool test (string filename, FileTest test); public static int open_tmp (string tmpl, out string name_used, out Error error); - public static ref string read_link (string filename, out Error error); + public static string read_link (string filename, out Error error); [CCode (cname = "g_rename")] public static int rename (string oldfilename, string newfilename); @@ -1330,7 +1330,7 @@ namespace GLib { [ReferenceType (free_function = "g_dir_close")] public struct Dir { - public static ref Dir open (string filename, uint _flags, out Error error); + public static Dir open (string filename, uint _flags, out Error error); public weak string read_name (); [CCode (cname = "g_mkdir")] @@ -1365,7 +1365,7 @@ namespace GLib { /* Shell-related Utilities */ public struct Shell { - public static bool parse_argv (string! command_line, ref int argcp, out string[] argvp, out Error error); + public static bool parse_argv (string! command_line, out int argcp, out string[] argvp, out Error error); public static string! quote (string! unquoted_string); public static string! unquote (string! quoted_string, out Error error); } @@ -1482,7 +1482,7 @@ namespace GLib { public static bool check_replacement (out bool has_references = null, out Error error = null); } - public callback bool RegexEvalCallback (MatchInfo match_info, String result, pointer user_data); + public static delegate bool RegexEvalCallback (MatchInfo match_info, String result, pointer user_data); [ReferenceType (free_function = "g_match_info_free")] public struct MatchInfo { @@ -1515,15 +1515,15 @@ namespace GLib { } [NoArrayLength] - public callback void MarkupParserStartElementFunc (MarkupParseContext context, string element_name, string[] attribute_names, string[] attribute_values, pointer user_data, out Error error); + public static delegate void MarkupParserStartElementFunc (MarkupParseContext context, string element_name, string[] attribute_names, string[] attribute_values, pointer user_data, out Error error); - public callback void MarkupParserEndElementFunc (MarkupParseContext context, string element_name, pointer user_data, out Error error); + public static delegate void MarkupParserEndElementFunc (MarkupParseContext context, string element_name, pointer user_data, out Error error); - public callback void MarkupParserTextFunc (MarkupParseContext context, string text, ulong text_len, pointer user_data, out Error error); + public static delegate void MarkupParserTextFunc (MarkupParseContext context, string text, ulong text_len, pointer user_data, out Error error); - public callback void MarkupParserPassthroughFunc (MarkupParseContext context, string passthrough_text, ulong text_len, pointer user_data, out Error error); + public static delegate void MarkupParserPassthroughFunc (MarkupParseContext context, string passthrough_text, ulong text_len, pointer user_data, out Error error); - public callback void MarkupParserErrorFunc (MarkupParseContext context, Error error, pointer user_data); + public static delegate void MarkupParserErrorFunc (MarkupParseContext context, Error error, pointer user_data); [ReferenceType (free_function = "g_free")] public struct MarkupParser { @@ -1549,24 +1549,24 @@ namespace GLib { public bool load_from_file (string! file, KeyFileFlags @flags, out Error error); public bool load_from_data (string! data, ulong length, KeyFileFlags @flags, out Error error); public bool load_from_data_dirs (string! file, out string full_path, KeyFileFlags @flags, out Error error); - public ref string to_data (ref ulong length, out Error error); - public ref string get_start_group (); - public ref string[] get_groups (ref ulong length); - public ref string[] get_keys (string! group_name, ref ulong length, out Error error); + public string to_data (out ulong length, out Error error); + public string get_start_group (); + public string[] get_groups (out ulong length); + public string[] get_keys (string! group_name, out ulong length, out Error error); public bool has_group (string! group_name); public bool has_key (string! group_name, string! key, out Error error); - public ref string get_value (string! group_name, string! key, out Error error); - public ref string get_string (string! group_name, string! key, out Error error); - public ref string get_locale_string (string! group_name, string! key, string! locale, out Error error); + public string get_value (string! group_name, string! key, out Error error); + public string get_string (string! group_name, string! key, out Error error); + public string get_locale_string (string! group_name, string! key, string! locale, out Error error); public bool get_boolean (string! group_name, string! key, out Error error); public int get_integer (string! group_name, string! key, out Error error); public double get_double (string! group_name, string! key, out Error error); - public ref string[] get_string_list (string! group_name, string! key, ref ulong length, out Error error); - public ref string[] get_locale_string_list (string! group_name, string! key, string! locale, ref ulong length, out Error error); - public ref bool[] get_boolean_list (string! group_name, string! key, ref ulong length, out Error error); - public ref int[] get_integer_list (string! group_name, string! key, ref ulong length, out Error error); - public ref double[] get_double_list (string! group_name, string! key, ref ulong length, out Error error); - public ref string get_comment (string! group_name, string! key, out Error error); + public string[] get_string_list (string! group_name, string! key, out ulong length, out Error error); + public string[] get_locale_string_list (string! group_name, string! key, string! locale, out ulong length, out Error error); + public bool[] get_boolean_list (string! group_name, string! key, out ulong length, out Error error); + public int[] get_integer_list (string! group_name, string! key, out ulong length, out Error error); + public double[] get_double_list (string! group_name, string! key, out ulong length, out Error error); + public string get_comment (string! group_name, string! key, out Error error); public void set_value (string! group_name, string! key, string! value, out Error error); public void set_string (string! group_name, string! key, string! string, out Error error); public void set_locale_string (string! group_name, string! key, string! locale, string! string, out Error error); @@ -1596,13 +1596,13 @@ namespace GLib { [ReferenceType (dup_function = "g_list_copy", free_function = "g_list_free")] public struct List { [ReturnsModifiedPointer ()] - public void append (ref G data); + public void append (G# data); [ReturnsModifiedPointer ()] - public void prepend (ref G data); + public void prepend (G# data); [ReturnsModifiedPointer ()] - public void insert (ref G data, int position); + public void insert (G# data, int position); [ReturnsModifiedPointer ()] - public void insert_before (List sibling, ref G data); + public void insert_before (List sibling, G# data); [ReturnsModifiedPointer ()] public void remove (G data); [ReturnsModifiedPointer ()] @@ -1614,13 +1614,13 @@ namespace GLib { public void free (); public uint length (); - public ref List copy (); + public List copy (); [ReturnsModifiedPointer ()] public void reverse (); [ReturnsModifiedPointer ()] public void sort (CompareFunc compare_func); [ReturnsModifiedPointer ()] - public void concat (ref List list2); + public void concat (List# list2); public weak List first (); public weak List last (); @@ -1644,13 +1644,13 @@ namespace GLib { [ReferenceType (dup_function = "g_slist_copy", free_function = "g_slist_free")] public struct SList { [ReturnsModifiedPointer ()] - public void append (ref G data); + public void append (G# data); [ReturnsModifiedPointer ()] - public void prepend (ref G data); + public void prepend (G# data); [ReturnsModifiedPointer ()] - public void insert (ref G data, int position); + public void insert (G# data, int position); [ReturnsModifiedPointer ()] - public void insert_before (SList sibling, ref G data); + public void insert_before (SList sibling, G# data); [ReturnsModifiedPointer ()] public void remove (G data); [ReturnsModifiedPointer ()] @@ -1662,13 +1662,13 @@ namespace GLib { public void free (); public uint length (); - public ref SList copy (); + public SList copy (); [ReturnsModifiedPointer ()] public void reverse (); [ReturnsModifiedPointer ()] public void sort (CompareFunc compare_func); [ReturnsModifiedPointer ()] - public void concat (ref SList list2); + public void concat (SList# list2); public weak SList last (); public weak SList nth (uint n); @@ -1683,9 +1683,9 @@ namespace GLib { public weak SList next; } - public callback int CompareFunc (pointer a, pointer b); + public static delegate int CompareFunc (pointer a, pointer b); - public callback int CompareDataFunc (pointer a, pointer b, pointer user_data); + public static delegate int CompareDataFunc (pointer a, pointer b, pointer user_data); [CCode (cname = "strcmp")] public static GLib.CompareFunc strcmp; @@ -1703,25 +1703,25 @@ namespace GLib { public bool is_empty (); public uint get_length (); public void reverse (); - public ref Queue copy (); + public Queue copy (); public weak List find (G data); public weak List find_custom (G data, CompareFunc func); public void sort (CompareDataFunc compare_func, pointer user_data); - public void push_head (ref G data); - public void push_tail (ref G data); - public void push_nth (ref G data); - public ref G pop_head (); - public ref G pop_tail (); - public ref G pop_nth (); + public void push_head (G# data); + public void push_tail (G# data); + public void push_nth (G# data); + public G pop_head (); + public G pop_tail (); + public G pop_nth (); public weak G peek_head (); public weak G peek_tail (); public weak G peek_nth (); public int index (G data); public void remove (G data); public void remove_all (G data); - public void insert_before (List sibling, ref G data); - public void insert_after (List sibling, ref G data); - public void insert_sorted (List sibling, ref G data, CompareDataFunc func, pointer user_data); + public void insert_before (List sibling, G# data); + public void insert_after (List sibling, G# data); + public void insert_sorted (List sibling, G# data, CompareDataFunc func, pointer user_data); } /* Hash Tables */ @@ -1730,17 +1730,17 @@ namespace GLib { public struct HashTable { public HashTable (HashFunc hash_func, EqualFunc key_equal_func); public HashTable.full (HashFunc hash_func, EqualFunc key_equal_func, DestroyNotify key_destroy_func, DestroyNotify value_destroy_func); - public void insert (ref K key, ref V value); - public void replace (ref K key, ref V value); + public void insert (K# key, V# value); + public void replace (K# key, V# value); public weak V lookup (K key); public bool remove (K key); } - public callback uint HashFunc (pointer key); - public callback bool EqualFunc (pointer a, pointer b); - public callback void HFunc (pointer key, pointer value, pointer user_data); + public static delegate uint HashFunc (pointer key); + public static delegate bool EqualFunc (pointer a, pointer b); + public static delegate void HFunc (pointer key, pointer value, pointer user_data); - public callback void DestroyNotify (pointer data); + public static delegate void DestroyNotify (pointer data); [CCode (cname = "g_direct_hash")] public static GLib.HashFunc direct_hash; @@ -1827,12 +1827,12 @@ namespace GLib { public void sort_with_data (CompareDataFunc compare_func, pointer user_data); [ReturnsModifiedPointer ()] public void set_size (uint length); - public ref string free (bool free_segment); + public string free (bool free_segment); } /* GTree */ - public callback int TraverseFunc (pointer key, pointer value, pointer data); + public static delegate int TraverseFunc (pointer key, pointer value, pointer data); [CCode (c_prefix="C_")] public enum TraverseType { diff --git a/vapi/libxml-2.0.vala b/vapi/libxml-2.0.vala index f5e7545f..7270b2e6 100644 --- a/vapi/libxml-2.0.vala +++ b/vapi/libxml-2.0.vala @@ -1,6 +1,6 @@ /* libxml2.vala * - * Copyright (C) 2006 Jürg Billeter, Raffaele Sandrini + * Copyright (C) 2006-2007 Jürg Billeter, Raffaele Sandrini * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ namespace Xml { public int read (); [CCode (cname = "xmlTextReaderReadString")] - public ref string read_string (); + public string read_string (); [CCode (cname = "xmlTextReaderClose")] public int close (); diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index d8da32cb..fcc5fd15 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -58,7 +58,8 @@ public class Vala.GIdlParser : CodeVisitor { if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { string metadata; - FileUtils.get_contents (metadata_filename, out metadata, null, out error); + long metadata_len; + FileUtils.get_contents (metadata_filename, out metadata, out metadata_len, out error); foreach (string line in metadata.split ("\n")) { var line_parts = line.split (" ", 2); @@ -167,7 +168,7 @@ public class Vala.GIdlParser : CodeVisitor { return ns; } - private ref Callback parse_callback (IdlNodeFunction! f_node) { + private Callback parse_callback (IdlNodeFunction! f_node) { weak IdlNode node = (IdlNode) f_node; var attributes = get_attributes (node.name); @@ -195,7 +196,7 @@ public class Vala.GIdlParser : CodeVisitor { return cb; } - private ref Struct parse_struct (IdlNodeStruct! st_node) { + private Struct parse_struct (IdlNodeStruct! st_node) { weak IdlNode node = (IdlNode) st_node; if (st_node.deprecated) { @@ -238,7 +239,7 @@ public class Vala.GIdlParser : CodeVisitor { return st; } - private ref Struct parse_boxed (IdlNodeBoxed! boxed_node) { + private Struct parse_boxed (IdlNodeBoxed! boxed_node) { weak IdlNode node = (IdlNode) boxed_node; var st = new Struct (node.name, current_source_reference); @@ -277,7 +278,7 @@ public class Vala.GIdlParser : CodeVisitor { return st; } - private ref Enum parse_enum (IdlNodeEnum! en_node) { + private Enum parse_enum (IdlNodeEnum! en_node) { weak IdlNode node = (IdlNode) en_node; var en = new Enum (node.name, current_source_reference); @@ -309,7 +310,7 @@ public class Vala.GIdlParser : CodeVisitor { return en; } - private ref Class parse_object (IdlNodeInterface! node) { + private Class parse_object (IdlNodeInterface! node) { var cl = new Class (node.gtype_name, current_source_reference); cl.access = MemberAccessibility.PUBLIC; @@ -448,7 +449,7 @@ public class Vala.GIdlParser : CodeVisitor { return iface; } - private ref TypeReference parse_type (IdlNodeType! type_node) { + private TypeReference parse_type (IdlNodeType! type_node) { var type = new TypeReference (); if (type_node.tag == TypeTag.VOID) { if (type_node.is_pointer) { @@ -553,7 +554,7 @@ public class Vala.GIdlParser : CodeVisitor { } else { parse_type_string (type, n); if (type_node.is_pointer && is_value_type (n)) { - type.reference_to_value_type = true; + type.is_out = true; } } } else { @@ -649,7 +650,7 @@ public class Vala.GIdlParser : CodeVisitor { } } - private ref TypeReference parse_param (IdlNodeParam! param) { + private TypeReference parse_param (IdlNodeParam! param) { var type = parse_type (param.type); // disable for now as null_ok not yet correctly set @@ -658,7 +659,7 @@ public class Vala.GIdlParser : CodeVisitor { return type; } - private ref Method parse_function (IdlNodeFunction! f, bool is_virtual = false) { + private Method parse_function (IdlNodeFunction! f, bool is_virtual = false) { weak IdlNode node = (IdlNode) f; if (f.deprecated) { @@ -755,7 +756,7 @@ public class Vala.GIdlParser : CodeVisitor { if (last_param != null && p.name == "n_" + last_param.name) { // last_param is array, p is array length last_param.type_reference.array_rank = 1; - last_param.type_reference.reference_to_value_type = false; + last_param.type_reference.is_out = false; } last_param = p; @@ -773,7 +774,7 @@ public class Vala.GIdlParser : CodeVisitor { return m; } - private ref string! fix_prop_name (string name) { + private string! fix_prop_name (string name) { var str = new String (); string i = name; @@ -792,7 +793,7 @@ public class Vala.GIdlParser : CodeVisitor { return str.str; } - private ref Property parse_property (IdlNodeProperty! prop_node) { + private Property parse_property (IdlNodeProperty! prop_node) { weak IdlNode node = (IdlNode) prop_node; if (prop_node.deprecated) { @@ -831,7 +832,7 @@ public class Vala.GIdlParser : CodeVisitor { return prop; } - private ref Constant parse_constant (IdlNodeConstant! const_node) { + private Constant parse_constant (IdlNodeConstant! const_node) { weak IdlNode node = (IdlNode) const_node; var type = parse_type (const_node.type); @@ -844,7 +845,7 @@ public class Vala.GIdlParser : CodeVisitor { return c; } - private ref Field parse_field (IdlNodeField! field_node) { + private Field parse_field (IdlNodeField! field_node) { weak IdlNode node = (IdlNode) field_node; var type = parse_type (field_node.type); @@ -867,7 +868,7 @@ public class Vala.GIdlParser : CodeVisitor { } [NoArrayLength] - private ref string[] get_attributes (string! codenode) { + private string[] get_attributes (string! codenode) { string attributes = codenode_attributes_map.lookup (codenode); if (attributes == null) { return null; @@ -876,11 +877,11 @@ public class Vala.GIdlParser : CodeVisitor { return attributes.split (" "); } - private ref string eval (string! s) { + private string eval (string! s) { return s.offset (1).ndup (s.size () - 2); } - private ref Signal parse_signal (IdlNodeSignal! sig_node) { + private Signal parse_signal (IdlNodeSignal! sig_node) { weak IdlNode node = (IdlNode) sig_node; if (sig_node.deprecated || sig_node.result == null) { diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala index bde1bd3b..d0d16f88 100644 --- a/vapigen/valavapigen.vala +++ b/vapigen/valavapigen.vala @@ -1,6 +1,6 @@ /* valavapigen.vala * - * Copyright (C) 2006 Jürg Billeter + * Copyright (C) 2006-2007 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -55,7 +55,7 @@ class Vala.VAPIGen { } } - private ref string get_package_path (string! pkg) { + private string get_package_path (string! pkg) { var basename = "%s.vala".printf (pkg); if (vapi_directories != null) { -- 2.11.4.GIT