projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.13.26: Life after heap exhaustion on GENCGC
[sbcl.git]
/
src
/
pcl
/
std-class.lisp
diff --git
a/src/pcl/std-class.lisp
b/src/pcl/std-class.lisp
index
83e16de
..
c3216ba
100644
(file)
--- a/
src/pcl/std-class.lisp
+++ b/
src/pcl/std-class.lisp
@@
-73,10
+73,6
@@
effective-slot-definition))
(let* ((name (slot-value slotd 'name))
(class (slot-value slotd '%class)))
effective-slot-definition))
(let* ((name (slot-value slotd 'name))
(class (slot-value slotd '%class)))
- (let ((table (or (gethash name *name->class->slotd-table*)
- (setf (gethash name *name->class->slotd-table*)
- (make-hash-table :test 'eq :size 5)))))
- (setf (gethash class table) slotd))
(dolist (type '(reader writer boundp))
(let* ((gf-name (ecase type
(reader 'slot-value-using-class)
(dolist (type '(reader writer boundp))
(let* ((gf-name (ecase type
(reader 'slot-value-using-class)
@@
-798,6
+794,8
@@
(not (class-finalized-p class))
(not (class-has-a-forward-referenced-superclass-p class)))
(finalize-inheritance class)
(not (class-finalized-p class))
(not (class-has-a-forward-referenced-superclass-p class)))
(finalize-inheritance class)
+ (dolist (sub (class-direct-subclasses class))
+ (update-class sub nil))
(return-from update-class))
(when (or finalizep (class-finalized-p class)
(not (class-has-a-forward-referenced-superclass-p class)))
(return-from update-class))
(when (or finalizep (class-finalized-p class)
(not (class-has-a-forward-referenced-superclass-p class)))