diff --git a/tools/clog-builder-scope.lisp b/tools/clog-builder-scope.lisp
index c2e7984..f0522b8 100644
--- a/tools/clog-builder-scope.lisp
+++ b/tools/clog-builder-scope.lisp
@@ -180,9 +180,12 @@ name. If CLOG-BODY not set use *clog-debug-instance*"
(on-new-sys-browser obj
:search (first sys)
:package (second sys))))
- :content (format nil "~A ~A"
- (get-name (closer-mop:generic-function-name item))
- (escape-lisp (closer-mop:generic-function-lambda-list item)))))
+ :content (handler-case
+ (format nil "~A ~A"
+ (get-name (closer-mop:generic-function-name item))
+ (escape-lisp (closer-mop:generic-function-lambda-list item)))
+ (error ()
+ ""))))
(closer-mop:specializer-direct-generic-functions class)))
(on-calc-methods (obj class)
(dolist (dclass (closer-mop:class-precedence-list class))
@@ -251,13 +254,17 @@ name. If CLOG-BODY not set use *clog-debug-instance*"
:content (format nil "~A~A"
(get-name (closer-mop:slot-definition-name slot))
(if (typep object class)
- (format nil " Object Value = ~A"
- (escape-lisp (slot-value object (closer-mop:slot-definition-name slot))))
+ (handler-case
+ (format nil " Object Value = ~A"
+ (escape-lisp (slot-value object (closer-mop:slot-definition-name slot))))
+ (error () " Unbound"))
"")))))
(when (typep object class)
- (let* ((object (slot-value object (closer-mop:slot-definition-name slot)))
- (class (class-of object)))
- (add-class sltt class object)))
+ (handler-case
+ (let* ((object (slot-value object (closer-mop:slot-definition-name slot)))
+ (class (class-of object)))
+ (add-class sltt class object))
+ (error () nil)))
(create-clog-tree-item (tree-root sltt)
:content (format nil "slot-definition-initargs = ~A"
(escape-lisp (closer-mop:slot-definition-initargs slot))))
@@ -282,51 +289,60 @@ name. If CLOG-BODY not set use *clog-debug-instance*"
(closer-mop:class-direct-slots class)))
(on-calc-slots (obj class object)
(dolist (dclass (closer-mop:class-precedence-list class))
- (when (or (equalp (get-name (class-name dclass)) "common-lisp:standard-object")
- (equalp (get-name (class-name dclass)) "common-lisp:structure-object"))
- (return))
- (create-div (tree-root obj) :content (format nil " ~A" (get-name (class-name dclass)))
- :class "w3-tiny")
- (mapcar (lambda (slot)
- (let ((sltt (create-clog-tree (tree-root obj)
- :indent-level (1+ (indent-level obj))
- :node-html "▬"
- :visible nil
- :on-context-menu (lambda (obj)
- (on-new-sys-browser obj
- :search (get-name (closer-mop:slot-definition-name slot))))
- :content (format nil "~A~A"
- (get-name (closer-mop:slot-definition-name slot))
- (if (typep object class)
- (format nil " Object Value = ~A"
- (escape-lisp (slot-value object (closer-mop:slot-definition-name slot))))
- "")))))
- (when (typep object class)
- (let* ((object (slot-value object (closer-mop:slot-definition-name slot)))
- (class (class-of object)))
- (add-class sltt class object)))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-definition-initargs = ~A"
- (escape-lisp (closer-mop:slot-definition-initargs slot))))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-definition-initform = ~A"
- (escape-lisp (closer-mop:slot-definition-initform slot))))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-definition-initfunction = ~A"
- (escape-lisp (closer-mop:slot-definition-initfunction slot))))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-definition-readers = ~A"
- (escape-lisp (closer-mop:slot-definition-readers slot))))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-definition-writers = ~A"
- (escape-lisp (closer-mop:slot-definition-writers slot))))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-type = ~A"
- (escape-lisp (closer-mop:slot-definition-type slot))))
- (create-clog-tree-item (tree-root sltt)
- :content (format nil "slot-definition-allocation = ~A"
- (escape-lisp (closer-mop:slot-definition-allocation slot))))))
- (closer-mop:class-direct-slots dclass))))
+ (handler-case
+ (progn
+ (when (or (equalp (get-name (class-name dclass)) "common-lisp:standard-object")
+ (equalp (get-name (class-name dclass)) "common-lisp:structure-object")
+ (equalp (get-name (class-name dclass)) "common-lisp:standard-class"))
+ (return))
+ (create-div (tree-root obj) :content (format nil " ~A" (get-name (class-name dclass)))
+ :class "w3-tiny")
+ (mapcar (lambda (slot)
+ (let ((sltt (create-clog-tree (tree-root obj)
+ :indent-level (1+ (indent-level obj))
+ :node-html "▬"
+ :visible nil
+ :on-context-menu (lambda (obj)
+ (on-new-sys-browser obj
+ :search (get-name (closer-mop:slot-definition-name slot))))
+ :content (format nil "~A~A"
+ (get-name (closer-mop:slot-definition-name slot))
+ (if (typep object class)
+ (handler-case
+ (format nil " Object Value = ~A"
+ (escape-lisp (slot-value object (closer-mop:slot-definition-name slot))))
+ (error () " Unbound"))
+ "")))))
+ (when (typep object class)
+ (handler-case
+ (let* ((object (slot-value object (closer-mop:slot-definition-name slot)))
+ (class (class-of object)))
+ (add-class sltt class object))
+ (error () nil)))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-definition-initargs = ~A"
+ (escape-lisp (closer-mop:slot-definition-initargs slot))))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-definition-initform = ~A"
+ (escape-lisp (closer-mop:slot-definition-initform slot))))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-definition-initfunction = ~A"
+ (escape-lisp (closer-mop:slot-definition-initfunction slot))))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-definition-readers = ~A"
+ (escape-lisp (closer-mop:slot-definition-readers slot))))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-definition-writers = ~A"
+ (escape-lisp (closer-mop:slot-definition-writers slot))))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-type = ~A"
+ (escape-lisp (closer-mop:slot-definition-type slot))))
+ (create-clog-tree-item (tree-root sltt)
+ :content (format nil "slot-definition-allocation = ~A"
+ (escape-lisp (closer-mop:slot-definition-allocation slot))))))
+ (closer-mop:class-direct-slots dclass))
+ (error ()
+ (return))))))
(on-change (object &key is-list)
(setf (text tree) "")
(browser-gc obj)