From: Jürg Billeter Date: Fri, 16 Mar 2007 22:42:57 +0000 (+0000) Subject: support weak keyword in local variable declarations improve GError support X-Git-Tag: VALA_0_0_8~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dc8db285a0ce51bb9fd53eec2dc93808e402a11f;p=thirdparty%2Fvala.git support weak keyword in local variable declarations improve GError support 2007-03-16 Jürg Billeter * vala/parser.y: support weak keyword in local variable declarations * vapi/glib-2.0.vala: improve GError support svn path=/trunk/; revision=238 --- diff --git a/vala/ChangeLog b/vala/ChangeLog index daff2b577..fff79bc57 100644 --- a/vala/ChangeLog +++ b/vala/ChangeLog @@ -1,3 +1,8 @@ +2007-03-16 Jürg Billeter + + * vala/parser.y: support weak keyword in local variable declarations + * vapi/glib-2.0.vala: improve GError support + 2007-03-16 Jürg Billeter * vala/valacodegenerator.vala: support disconnecting signals, based on diff --git a/vala/vala/parser.y b/vala/vala/parser.y index 995460538..785c49ce2 100644 --- a/vala/vala/parser.y +++ b/vala/vala/parser.y @@ -1434,6 +1434,16 @@ local_variable_type vala_type_reference_set_non_null ($$, TRUE); } } + | WEAK primary_expression opt_op_neg + { + ValaSourceReference *src = src(@2); + $$ = vala_type_reference_new_from_expression ($2); + g_object_unref ($2); + g_object_unref (src); + if ($3) { + vala_type_reference_set_non_null ($$, TRUE); + } + } ; opt_op_neg diff --git a/vala/vapi/glib-2.0.vala b/vala/vapi/glib-2.0.vala index f8a01311b..832f0a5dd 100644 --- a/vala/vapi/glib-2.0.vala +++ b/vala/vapi/glib-2.0.vala @@ -625,8 +625,9 @@ namespace GLib { /* Error Reporting */ - [ReferenceType ()] + [ReferenceType (dup_function = "g_error_copy", free_function = "g_error_free")] public struct Error { + public Error (Quark domain, int code, string! format, ...); public int code; public string message; }