fix leak
[m6w6/ext-psi] / src / libffi.c
index eb5b2b518aa800bf8f9922d50cdd1d66e833785c..2c68fbf0ee4bb34834dd51b910bdb1ec39e3f3e5 100644 (file)
@@ -10,6 +10,9 @@
 # endif
 # if HAVE_SYS_MMAN_H
 #  include <sys/mman.h>
+#  ifndef MAP_ANONYMOUS
+#   define MAP_ANONYMOUS MAP_ANON
+#  endif
 # endif
 #endif
 
@@ -216,7 +219,8 @@ static void handler(ffi_cif *_sig, void *_result, void **_args, void *_data)
                        decl_arg *darg = data->impl->decl->args->args[i];
 
                        arg_ptr[i] = psi_do_let(darg);
-                       arg_prm[i] = darg->let->val->is_reference ? &arg_ptr[i] : arg_ptr[i];
+                       arg_prm[i] = (darg->let->val && darg->let->val->is_reference)
+                                       ? &arg_ptr[i] : arg_ptr[i];
 
                        darg->let->ptr = arg_ptr[i];
                }