From bacece382709b617323dc181033ecb751ddb62c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Sat, 8 Aug 2015 08:36:43 +0200 Subject: [PATCH] Revert "cmp: ffi: cast `ecl_make_foreign_data' 3rd argument to *(void **)" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit ab50a55fb183d750b3fa356e32bf112c563bed17. We can't cast every 3rd argument to *(void **) - this breaks *things*. Signed-off-by: Daniel KochmaƄski --- src/cmp/cmpcbk.lsp | 2 +- src/h/external.h | 2 +- src/lsp/ffi.lsp | 4 ++-- src/new-cmp/cmpc-cbk.lsp | 2 +- src/new-cmp/cmpc-ffi.lsp | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cmp/cmpcbk.lsp b/src/cmp/cmpcbk.lsp index 72873de2e..70deaf98f 100644 --- a/src/cmp/cmpcbk.lsp +++ b/src/cmp/cmpcbk.lsp @@ -41,7 +41,7 @@ (si::put-sysprop ',name :callback (list (ffi:c-inline () () :object - ,(format nil "ecl_make_foreign_data(@':pointer-void,0,*(void**)~a)" c-name) + ,(format nil "ecl_make_foreign_data(@':pointer-void,0,~a)" c-name) :one-liner t))))) ))) diff --git a/src/h/external.h b/src/h/external.h index a44874900..1864ac258 100755 --- a/src/h/external.h +++ b/src/h/external.h @@ -657,7 +657,7 @@ extern ECL_API cl_object si_make_dynamic_callback(cl_narg, cl_object fun, cl_obj extern ECL_API cl_object si_free_ffi_closure(cl_object closure); /* Only foreign data types can be coerced to a pointer */ -#define ecl_make_pointer(x) ecl_make_foreign_data(ECL_NIL,0,*(void **)(x)) +#define ecl_make_pointer(x) ecl_make_foreign_data(ECL_NIL,0,(x)) #define ecl_to_pointer(x) ecl_foreign_data_pointer_safe(x) extern ECL_API cl_object ecl_make_foreign_data(cl_object tag, cl_index size, void *data); extern ECL_API cl_object ecl_allocate_foreign_data(cl_object tag, cl_index size); diff --git a/src/lsp/ffi.lsp b/src/lsp/ffi.lsp index ad34d7d77..9dfd6e3ca 100644 --- a/src/lsp/ffi.lsp +++ b/src/lsp/ffi.lsp @@ -319,7 +319,7 @@ (defun make-pointer (addr type) (c-inline (type (size-of-foreign-type type) addr) (:object :unsigned-long :unsigned-long) :object - "ecl_make_foreign_data(#0, #1, *(void**)#2)" + "ecl_make_foreign_data(#0, #1, (void*)#2)" :side-effects t :one-liner t)) @@ -548,7 +548,7 @@ `(si::find-foreign-symbol ,c-name ,module ',type ,(size-of-foreign-type type))) (t `(c-inline () () :object - ,(format nil "ecl_make_foreign_data(@~S, ~A, *(void **)~A)" + ,(format nil "ecl_make_foreign_data(@~S, ~A, &~A)" type (size-of-foreign-type type) c-name) :side-effects t :one-liner t))))) (if can-deref diff --git a/src/new-cmp/cmpc-cbk.lsp b/src/new-cmp/cmpc-cbk.lsp index e4c2f001a..262444ee2 100644 --- a/src/new-cmp/cmpc-cbk.lsp +++ b/src/new-cmp/cmpc-cbk.lsp @@ -41,7 +41,7 @@ (si::put-sysprop ',name :callback (list (ffi:c-inline () () :object - ,(format nil "ecl_make_foreign_data(@':pointer-void,0,*(void**)~a)" c-name) + ,(format nil "ecl_make_foreign_data(@':pointer-void,0,~a)" c-name) :one-liner t))))) ))) diff --git a/src/new-cmp/cmpc-ffi.lsp b/src/new-cmp/cmpc-ffi.lsp index ba1ffa228..7d3207420 100644 --- a/src/new-cmp/cmpc-ffi.lsp +++ b/src/new-cmp/cmpc-ffi.lsp @@ -216,7 +216,7 @@ ((:cstring) (wt "ecl_cstring_to_base_string_or_nil(" loc ")")) ((:pointer-void) - (wt "ecl_make_foreign_data(Cnil, 0, *(void**)" loc ")")) + (wt "ecl_make_foreign_data(Cnil, 0, " loc ")")) (otherwise (coercion-error)))) ((:pointer-void)