From: George Barrett Date: Wed, 6 Dec 2017 14:51:05 +0000 (+0100) Subject: codegen: Don't create null-safe destroy-wrapper for GenericType X-Git-Tag: 0.39.2~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fkeep-around%2Fac0dbad019e33c073c423e45fec2da562c7b6264;p=thirdparty%2Fvala.git codegen: Don't create null-safe destroy-wrapper for GenericType https://bugzilla.gnome.org/show_bug.cgi?id=791283 --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 059399e16..f99acce08 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -3082,7 +3082,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { public CCodeExpression? get_destroy0_func_expression (DataType type, bool is_chainup = false) { var element_destroy_func_expression = get_destroy_func_expression (type, is_chainup); - if (element_destroy_func_expression is CCodeIdentifier) { + if (!(type is GenericType) && element_destroy_func_expression is CCodeIdentifier) { var freeid = (CCodeIdentifier) element_destroy_func_expression; string free0_func = "_%s0_".printf (freeid.name); diff --git a/tests/Makefile.am b/tests/Makefile.am index ffaa3cfa0..efc54d317 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -99,6 +99,7 @@ TESTS = \ methods/bug781061.vala \ methods/bug784691.vala \ methods/bug791215.vala \ + methods/bug791283.vala \ methods/generics.vala \ methods/printf-invalid.test \ methods/printf-constructor.vala \ diff --git a/tests/methods/bug791283.vala b/tests/methods/bug791283.vala new file mode 100644 index 000000000..569d8b194 --- /dev/null +++ b/tests/methods/bug791283.vala @@ -0,0 +1,16 @@ +class Foo { + GenericArray bar; + + public Foo () { + bar = new GenericArray (); + } +} + +GenericArray create_bar () { + return new GenericArray (); +} + +void main () { + var foo = new Foo (); + var bar = create_bar (); +}