;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: proxy.lisp,v 1.2 2006/06/08 13:25:09 espen Exp $
+;; $Id: proxy.lisp,v 1.4 2006/08/16 12:09:03 espen Exp $
(in-package "GFFI")
(funcall (instance-finalizer instance)))
(slot-makunbound instance 'location)
(cancel-finalization instance))
- ;; We can't cached invalidated instances in CLISP beacuse it is
+ ;; We can't cache invalidated instances in CLISP beacuse it is
;; not possible to cancel finalization
#-clisp(cache-invalidated-instance instance))
(call-next-method))
(call-next-method)))
+ (defmethod slot-readable-p ((slotd effective-alien-slot-definition))
+ (declare (ignore slotd))
+ t)
- (defmethod compute-slot-reader-function ((slotd effective-alien-slot-definition))
+ (defmethod compute-slot-reader-function ((slotd effective-alien-slot-definition) &optional signal-unbound-p)
+ (declare (ignore signal-unbound-p))
(let* ((type (slot-definition-type slotd))
(offset (slot-definition-offset slotd))
(reader (reader-function type)))
#'(lambda (object)
(funcall reader (foreign-location object) offset))))
+ (defmethod slot-writable-p ((slotd effective-alien-slot-definition))
+ (declare (ignore slotd))
+ t)
+
(defmethod compute-slot-writer-function ((slotd effective-alien-slot-definition))
(let* ((type (slot-definition-type slotd))
(offset (slot-definition-offset slotd))
(funcall writer value location offset))
value)))
- (defmethod compute-slot-reader-function ((slotd effective-virtual-alien-slot-definition))
+ (defmethod compute-slot-reader-function ((slotd effective-virtual-alien-slot-definition) &optional signal-unbound-p)
+ (declare (ignore signal-unbound-p))
(if (and (slot-boundp slotd 'getter) (stringp (slot-definition-getter slotd)))
(let ((getter (slot-definition-getter slotd))
(type (slot-definition-type slotd))