;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: objects.cl,v 1.8 2002/03/18 22:47:57 kevin Exp $
+;;;; $Id: objects.cl,v 1.10 2002/03/21 07:56:45 kevin Exp $
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(defmacro deref-pointer (ptr type)
"Returns a object pointed"
+ #+(or cmu lispworks) (declare (ignore type))
#+cmu `(alien:deref ,ptr)
#+lispworks `(fli:dereference ,ptr)
#+allegro `(ff:fslot-value-typed ,type :c ,ptr)
)
+#+lispworks ;; with LW, deref is a character
+(defmacro ensure-char-character (obj)
+ obj
+ )
+
+#+(or allegro cmu)
+(defmacro ensure-char-character (obj)
+ `(code-char ,obj)
+ )
+
+#+lispworks
+(defmacro ensure-char-integer (obj)
+ `(char-code ,obj))
+
+#+(or allegro cmu)
+(defmacro ensure-char-integer (obj)
+ obj
+ ) ;; (* :char) dereference is already an integer
+
(defmacro pointer-address (obj)
#+cmu
`(system:sap-int (alien:alien-sap ,obj))