From: Jürg Billeter Date: Fri, 26 Mar 2010 07:59:49 +0000 (+0100) Subject: Never try to use GValue take functions for primitive types X-Git-Tag: 0.8.0~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2c5dd953627edc36233515dbacf2a67baef5f4b;p=thirdparty%2Fvala.git Never try to use GValue take functions for primitive types --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index f839654ad..01e5fa6dc 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -4991,7 +4991,7 @@ internal class Vala.CCodeBaseModule : CCodeModule { ccall.add_argument (new CCodeIdentifier (expression_type.get_type_id ())); ccomma.append_expression (ccall); - if (expression_type.value_owned) { + if (requires_destroy (expression_type)) { ccall = new CCodeFunctionCall (get_value_taker_function (expression_type)); } else { ccall = new CCodeFunctionCall (get_value_setter_function (expression_type)); diff --git a/tests/structs/gvalue.vala b/tests/structs/gvalue.vala index 132af3d45..c17c9d9c9 100644 --- a/tests/structs/gvalue.vala +++ b/tests/structs/gvalue.vala @@ -48,9 +48,17 @@ void test_nullable_value_array () { } } +void take_value (Value v) { +} + +bool make_bool () { + return true; +} + void main () { test_value (); test_value_array (); test_nullable_value (); test_nullable_value_array (); + take_value (make_bool ()); }