X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-introspect%2Fintrospect.lisp;h=862c866477a21b6f8224e40211ec5f49e0a0c080;hb=9649ba118decaf0b6c7715e9224843d16016ad6b;hp=9ebd67797e55eda65e7029fe32f7629cb77d93e8;hpb=b5f1bfd5090893a125ba7520fc2f30ad663b3af9;p=sbcl.git diff --git a/contrib/sb-introspect/introspect.lisp b/contrib/sb-introspect/introspect.lisp index 9ebd677..862c866 100644 --- a/contrib/sb-introspect/introspect.lisp +++ b/contrib/sb-introspect/introspect.lisp @@ -900,8 +900,8 @@ Experimental: interface subject to change." (funcall fun part)))) (etypecase object ((or bignum float sb-sys:system-area-pointer fixnum)) - (weak-pointer - (call (weak-pointer-value object))) + (sb-ext:weak-pointer + (call (sb-ext:weak-pointer-value object))) (cons (call (car object)) (call (cdr object)) @@ -958,11 +958,15 @@ Experimental: interface subject to change." do (call (sb-kernel:%funcallable-instance-info object i)))) (symbol (when (boundp object) - (let ((global (ignore-errors (symbol-global-value object))) - (local (symbol-value object))) - (call global) - (unless (eq local global) - (call local)))) + (let ((local (symbol-value object))) + (handler-case + ;; Possibly bound only in the current thread -- and we don't + ;; have GLOBAL-BOUNDP. + (let ((global (sb-ext:symbol-global-value object))) + (unless (eq local global) + (call global))) + (unbound-variable () + nil)))) (when (and ext (ignore-errors (fboundp object))) (call (fdefinition object)) (let ((class (find-class object nil))) @@ -975,7 +979,7 @@ Experimental: interface subject to change." (case (sb-kernel:widetag-of object) (#.sb-vm::value-cell-header-widetag (call (sb-kernel::value-cell-ref object))) - #+sb-lutex + #+(and sb-lutex sb-thread) (#.sb-vm::lutex-widetag) (t (warn "~&MAP-ROOT: Unknown widetag ~S: ~S~%"