summaryrefslogtreecommitdiff
path: root/codegen/valagasyncmodule.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-01-31 13:04:52 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-01-31 13:04:52 +0100
commit572ea42a8fd82275d73c28548c159cbf93dc3205 (patch)
treeb790323dbb66d56054d7bb7731c50fd424513041 /codegen/valagasyncmodule.vala
parentf3543aa5d50d3031e4aa486be0d7968e8eec3e8a (diff)
downloadvala-572ea42a8fd82275d73c28548c159cbf93dc3205.tar.gz
codegen: Don't emit invoker for async methods attributed with NoWrapper
Diffstat (limited to 'codegen/valagasyncmodule.vala')
-rw-r--r--codegen/valagasyncmodule.vala5
1 files changed, 4 insertions, 1 deletions
diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala
index c9946599f..36270edc3 100644
--- a/codegen/valagasyncmodule.vala
+++ b/codegen/valagasyncmodule.vala
@@ -339,6 +339,9 @@ 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) {
+ return false;
+ }
if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
return false;
}
@@ -450,7 +453,7 @@ public class Vala.GAsyncModule : GtkModule {
}
}
- if (m.is_abstract || m.is_virtual) {
+ if ((m.is_abstract || m.is_virtual) && m.get_attribute ("NoWrapper") == null) {
// generate virtual function wrappers
var cparam_map = new HashMap<int,CCodeParameter> (direct_hash, direct_equal);
var carg_map = new HashMap<int,CCodeExpression> (direct_hash, direct_equal);