diff options
Diffstat (limited to 'src/codegen/dyngen.rs')
-rw-r--r-- | src/codegen/dyngen.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/codegen/dyngen.rs b/src/codegen/dyngen.rs index 5bb8747c..71c4dab1 100644 --- a/src/codegen/dyngen.rs +++ b/src/codegen/dyngen.rs @@ -140,15 +140,13 @@ impl DynamicItems { // N.B: If the signature was required, it won't be wrapped in a Result<...> // and we can simply call it directly. - let call_body = if is_required { - quote! { - self.#ident(#( #args_identifiers ),*) - } + let fn_ = if is_required { + quote! { self.#ident } } else { - quote! { - let sym = self.#ident.as_ref().expect("Expected function, got error."); - (sym)(#( #args_identifiers ),*) - } + quote! { self.#ident.as_ref().expect("Expected function, got error.") } + }; + let call_body = quote! { + (#fn_)(#( #args_identifiers ),*) }; // We can't implement variadic functions from C easily, so we allow to |