diff options
Diffstat (limited to 'Lisp/memory-management.lisp')
-rw-r--r-- | Lisp/memory-management.lisp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Lisp/memory-management.lisp b/Lisp/memory-management.lisp index 1d652ae..4829a1e 100644 --- a/Lisp/memory-management.lisp +++ b/Lisp/memory-management.lisp @@ -24,6 +24,13 @@ (defun make-pointer-wrapper (class &rest initargs &key pointer &allow-other-keys) + (when (or (null-pointer-p pointer) + (pointer-eq (objcl-get-nil) pointer)) + (return-from make-pointer-wrapper + ;; We can't simply return +NIL+ here, because this function might + ;; be called at load-time (see the MAKE-LOAD-FORM methods in + ;; data-types.lisp). + (make-instance 'id :pointer (objcl-get-nil)))) (when (not (eq 'selector class)) (cond ((%objcl-object-is-meta-class pointer) (return-from make-pointer-wrapper |