projects
/
uffi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r10830: Automated commit for Debian build of uffi upstream-version-1.5.6
[uffi.git]
/
src
/
objects.lisp
diff --git
a/src/objects.lisp
b/src/objects.lisp
index cc4a9fef6ca25a06beb7221b6644e496cfd81196..33bd042e71048e36dec970f0c78e20a58f5f2386 100644
(file)
--- a/
src/objects.lisp
+++ b/
src/objects.lisp
@@
-242,6
+242,12
@@
an array of TYPE with size SIZE. The TYPE parameter is evaluated."
'(error "WITH-CAST-POINTER not (yet) implemented for ~A"
(lisp-implementation-type)))
'(error "WITH-CAST-POINTER not (yet) implemented for ~A"
(lisp-implementation-type)))
+#+(or allegro openmcl)
+(defun convert-external-name (name)
+ "Add an underscore to NAME if necessary for the ABI."
+ #+(or macosx darwinppc-target) (concatenate 'string "_" name)
+ #-(or macosx darwinppc-target) name)
+
(defmacro def-foreign-var (names type module)
#-lispworks (declare (ignore module))
(let ((foreign-name (if (atom names) names (first names)))
(defmacro def-foreign-var (names type module)
#-lispworks (declare (ignore module))
(let ((foreign-name (if (atom names) names (first names)))
@@
-255,7
+261,7
@@
an array of TYPE with size SIZE. The TYPE parameter is evaluated."
#+allegro
`(define-symbol-macro ,lisp-name
(ff:fslot-value-typed (quote ,(convert-from-uffi-type type :deref))
#+allegro
`(define-symbol-macro ,lisp-name
(ff:fslot-value-typed (quote ,(convert-from-uffi-type type :deref))
- :c (ff:get-entry-point ,
foreign-name
)))
+ :c (ff:get-entry-point ,
(convert-external-name foreign-name)
)))
#+lispworks
`(progn
(fli:define-foreign-variable (,lisp-name ,foreign-name)
#+lispworks
`(progn
(fli:define-foreign-variable (,lisp-name ,foreign-name)
@@
-264,11
+270,10
@@
an array of TYPE with size SIZE. The TYPE parameter is evaluated."
:module ,module)
(define-symbol-macro ,lisp-name (fli:dereference (,lisp-name)
:copy-foreign-object nil)))
:module ,module)
(define-symbol-macro ,lisp-name (fli:dereference (,lisp-name)
:copy-foreign-object nil)))
- #+(and openmcl darwinppc-target)
- (setf foreign-name (concatenate 'string "_" foreign-name))
#+openmcl
`(define-symbol-macro ,lisp-name
#+openmcl
`(define-symbol-macro ,lisp-name
- (deref-pointer (ccl:foreign-symbol-address ,foreign-name) ,var-type))
+ (deref-pointer (ccl:foreign-symbol-address
+ ,(convert-external-name foreign-name)) ,var-type))
#-(or allegro cmu scl sbcl lispworks openmcl)
`(define-symbol-macro ,lisp-name
'(error "DEF-FOREIGN-VAR not (yet) defined for ~A"
#-(or allegro cmu scl sbcl lispworks openmcl)
`(define-symbol-macro ,lisp-name
'(error "DEF-FOREIGN-VAR not (yet) defined for ~A"