From: Rico Tzschichholz Date: Mon, 27 Jul 2020 16:10:38 +0000 (+0200) Subject: girwriter: Don't include symbols outside of a namespace X-Git-Tag: 0.40.24~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1fee7d1aa0f57144dfe065875dc7bed33318487;p=thirdparty%2Fvala.git girwriter: Don't include symbols outside of a namespace Additionally report a warning for symbols which doesn't fulfill this rule. Fixes https://gitlab.gnome.org/GNOME/vala/issues/241 --- diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala index 0c01facae..a25716acb 100644 --- a/codegen/valaccodearraymodule.vala +++ b/codegen/valaccodearraymodule.vala @@ -485,7 +485,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { unowned ArrayType? array_type = value.value_type as ArrayType; if (array_type != null && array_type.fixed_length) { - unowned Struct? st = array_type.element_type.type_symbol as Struct; + unowned Struct? st = array_type.element_type.data_type as Struct; if (st != null && !array_type.element_type.nullable) { var ccall = new CCodeFunctionCall (new CCodeIdentifier (append_struct_array_destroy (st))); ccall.add_argument (get_cvalue_ (value)); diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index 7ea4a39a7..b3bae9660 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -387,6 +387,10 @@ public class Vala.GIRWriter : CodeVisitor { return; } + if (!has_namespace (cl)) { + return; + } + if (!(hierarchy[0] is Namespace)) { deferred.add (cl); return; @@ -586,6 +590,10 @@ public class Vala.GIRWriter : CodeVisitor { return; } + if (!has_namespace (st)) { + return; + } + if (!(hierarchy[0] is Namespace)) { deferred.add (st); return; @@ -624,6 +632,10 @@ public class Vala.GIRWriter : CodeVisitor { return; } + if (!has_namespace (iface)) { + return; + } + if (!(hierarchy[0] is Namespace)) { deferred.add (iface); return; @@ -789,6 +801,10 @@ public class Vala.GIRWriter : CodeVisitor { return; } + if (!has_namespace (en)) { + return; + } + if (!(hierarchy[0] is Namespace)) { deferred.add (en); return; @@ -863,6 +879,10 @@ public class Vala.GIRWriter : CodeVisitor { return; } + if (!has_namespace (edomain)) { + return; + } + write_indent (); buffer.append_printf ("