From: Luca Bruno Date: Wed, 25 May 2011 09:44:33 +0000 (+0200) Subject: Always set value_owned to false for pointers X-Git-Tag: 0.13.0~71 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=258045766f78ee1cff94c75f508ba683ebc47e7f;p=thirdparty%2Fvala.git Always set value_owned to false for pointers Fixes bug 650993. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 013585efe..422571e0d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -25,6 +25,7 @@ TESTS = \ basic-types/bug596637.vala \ basic-types/bug596785.vala \ basic-types/bug632322.vala \ + basic-types/bug650993.vala \ namespaces.vala \ methods/lambda.vala \ methods/closures.vala \ diff --git a/tests/basic-types/bug650993.vala b/tests/basic-types/bug650993.vala new file mode 100644 index 000000000..db47e9d63 --- /dev/null +++ b/tests/basic-types/bug650993.vala @@ -0,0 +1,7 @@ +void *test () { + return null; +} + +void main () { + unowned int[] o = (int[]) test(); +} diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 991b00887..ad97da879 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -489,6 +489,10 @@ public class Vala.Parser : CodeVisitor { } } + if (type is PointerType) { + value_owned = false; + } + type.is_dynamic = is_dynamic; type.value_owned = value_owned; return type;