From 50307dabe27023d3deb762cfaab8096cb5fa1979 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Mon, 1 Feb 2021 08:18:38 +0100 Subject: [PATCH] codegen: Add get_ccode_no_wrapper() and use it --- codegen/valaccode.vala | 4 ++++ codegen/valaccodememberaccessmodule.vala | 4 ++-- codegen/valaccodemethodcallmodule.vala | 2 +- codegen/valaccodemethodmodule.vala | 4 ++-- codegen/valagasyncmodule.vala | 4 ++-- codegen/valagirwriter.vala | 4 ++-- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/codegen/valaccode.vala b/codegen/valaccode.vala index 175cd99ea..7671b2c50 100644 --- a/codegen/valaccode.vala +++ b/codegen/valaccode.vala @@ -466,6 +466,10 @@ namespace Vala { return m.get_attribute_double ("CCode", "generic_type_pos"); } + public static bool get_ccode_no_wrapper (Method m) { + return m.get_attribute ("NoWrapper") != null; + } + public static string get_ccode_sentinel (Method m) { return get_ccode_attribute(m).sentinel; } diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala index bdd34d9e9..05e5541f8 100644 --- a/codegen/valaccodememberaccessmodule.vala +++ b/codegen/valaccodememberaccessmodule.vala @@ -65,7 +65,7 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { } if (m.base_method != null) { - if (m.base_method.get_attribute ("NoWrapper") != null) { + if (get_ccode_no_wrapper (m.base_method)) { var base_class = (Class) m.base_method.parent_symbol; if (!base_class.is_compact) { CCodeFunctionCall vclass; @@ -86,7 +86,7 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { set_cvalue (expr, new CCodeIdentifier (get_ccode_name (m.base_method))); } } else if (m.base_interface_method != null) { - if (m.base_interface_method.get_attribute ("NoWrapper") != null) { + if (get_ccode_no_wrapper (m.base_interface_method)) { var base_iface = (Interface) m.base_interface_method.parent_symbol; CCodeFunctionCall vclass; if (base_iface.external_package) { diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index 407a30685..11a5b7046 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -108,7 +108,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { async_call.call = new CCodeMemberAccess.pointer (vcast, get_ccode_vfunc_name (m)); finish_call.call = new CCodeMemberAccess.pointer (vcast, get_ccode_finish_vfunc_name (m)); } - } else if (m != null && m.get_attribute ("NoWrapper") != null && m.binding == MemberBinding.INSTANCE && !(m is CreationMethod)) { + } else if (m != null && get_ccode_no_wrapper (m) && m.binding == MemberBinding.INSTANCE && !(m is CreationMethod)) { var instance_value = ma.inner.target_value; if ((ma.member_name == "begin" || ma.member_name == "end") && ma.inner.symbol_reference == ma.symbol_reference) { var inner_ma = (MemberAccess) ma.inner; diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala index ff81b2dd9..ec18f786c 100644 --- a/codegen/valaccodemethodmodule.vala +++ b/codegen/valaccodemethodmodule.vala @@ -153,7 +153,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { if (m.is_async_callback) { return false; } - if ((m.is_abstract || m.is_virtual) && m.get_attribute ("NoWrapper") != null) { + if ((m.is_abstract || m.is_virtual) && get_ccode_no_wrapper (m)) { return false; } if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) { @@ -812,7 +812,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { pop_context (); if ((m.is_abstract || m.is_virtual) && !m.coroutine - && m.get_attribute ("NoWrapper") == null + && !get_ccode_no_wrapper (m) // If the method is a signal handler, the declaration is not needed. // the name should be reserved for the emitter! && m.signal_reference == null) { diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala index 36270edc3..6c59c7fe4 100644 --- a/codegen/valagasyncmodule.vala +++ b/codegen/valagasyncmodule.vala @@ -339,7 +339,7 @@ public class Vala.GAsyncModule : GtkModule { public override bool generate_method_declaration (Method m, CCodeFile decl_space) { if (m.coroutine) { - if ((m.is_abstract || m.is_virtual) && m.get_attribute ("NoWrapper") != null) { + if ((m.is_abstract || m.is_virtual) && get_ccode_no_wrapper (m)) { return false; } if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) { @@ -453,7 +453,7 @@ public class Vala.GAsyncModule : GtkModule { } } - if ((m.is_abstract || m.is_virtual) && m.get_attribute ("NoWrapper") == null) { + if ((m.is_abstract || m.is_virtual) && !get_ccode_no_wrapper (m)) { // generate virtual function wrappers var cparam_map = new HashMap (direct_hash, direct_equal); var carg_map = new HashMap (direct_hash, direct_equal); diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index afcab6ea9..6ba2a0e5c 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -1276,7 +1276,7 @@ public class Vala.GIRWriter : CodeVisitor { tag_name = "function"; } - if (m.get_attribute ("NoWrapper") == null) { + if (!get_ccode_no_wrapper (m)) { write_signature (m, tag_name, true); } @@ -1345,7 +1345,7 @@ public class Vala.GIRWriter : CodeVisitor { write_indent (); buffer.append_printf ("<%s name=\"%s\"", tag_name, name); if (tag_name == "virtual-method") { - if (m.get_attribute ("NoWrapper") == null) { + if (!get_ccode_no_wrapper (m)) { buffer.append_printf (" invoker=\"%s\"", name); } } else if (tag_name == "callback") { -- 2.47.3