30 Jul
2007
30 Jul
'07
2:49 p.m.
Hi, I have a class which is defined like this (basically, wraps a pointer): (defclass x-display () ((display-pointer :initform (null-pointer) :initarg :display-pointer :documentation "pointer to an Xlib display structure"))) For convenience, I would like to use it in place of a pointer, with some extra error checking: (defmethod translate-to-foreign (value (type (eql 'x-display))) (with-slots (display-pointer) value (when (null-pointer-p display-pointer) (error "the X11 display is not open")) display-pointer)) But this doesn't work: functions complain that they expect a system-area-pointer (I am in SBCL), so this method is not called. What am I doing wrong? Thanks, Tamas