Readd UNUSED_VAR macros for all invalid callback args

Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/c911cd66
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/c911cd66
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/c911cd66

Branch: refs/heads/master
Commit: c911cd66bca80a9263ee41990f077d54b6772f38
Parents: 91e680e
Author: Nick Wellnhofer <[email protected]>
Authored: Wed May 6 17:23:49 2015 +0200
Committer: Nick Wellnhofer <[email protected]>
Committed: Wed May 6 17:30:00 2015 +0200

----------------------------------------------------------------------
 compiler/src/CFCPerlMethod.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/c911cd66/compiler/src/CFCPerlMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCPerlMethod.c b/compiler/src/CFCPerlMethod.c
index 4ff0c2f..637be28 100644
--- a/compiler/src/CFCPerlMethod.c
+++ b/compiler/src/CFCPerlMethod.c
@@ -591,6 +591,15 @@ S_callback_refcount_mods(CFCMethod *method) {
 
 static char*
 S_invalid_callback_body(CFCMethod *method) {
+    CFCParamList *param_list   = CFCMethod_get_param_list(method);
+    CFCVariable **param_vars = CFCParamList_get_variables(param_list);
+    char *unused = CFCUtil_strdup("");
+    for (int i = 0; param_vars[i] != NULL; i++) {
+        const char *name = CFCVariable_micro_sym(param_vars[i]);
+        unused = CFCUtil_cat(unused, "    CFISH_UNUSED_VAR(", name, ");\n",
+                             NULL);
+    }
+
     CFCType *return_type = CFCMethod_get_return_type(method);
     const char *ret_type_str = CFCType_to_c(return_type);
     char *maybe_ret
@@ -602,12 +611,14 @@ S_invalid_callback_body(CFCMethod *method) {
     char *perl_name = CFCPerlMethod_perl_name(method);
 
     char pattern[] =
-        "    CFISH_UNUSED_VAR(self);\n"
+        "%s"
         "    cfish_Err_invalid_callback(\"%s\");\n"
         "%s";
-    char *callback_body = CFCUtil_sprintf(pattern, perl_name, maybe_ret);
+    char *callback_body
+        = CFCUtil_sprintf(pattern, unused, perl_name, maybe_ret);
 
     FREEMEM(perl_name);
+    FREEMEM(unused);
     FREEMEM(maybe_ret);
     return callback_body;
 }

Reply via email to