summaryrefslogtreecommitdiff
blob: 4d7af24109904f88d97fce734a5aae230f78f222 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
diff -ur src.orig/pcl/std-class.lisp src/pcl/std-class.lisp
--- src.orig/pcl/std-class.lisp	2005-07-07 11:44:27.000000000 -0500
+++ src/pcl/std-class.lisp	2006-12-11 00:01:52.000000000 -0600
@@ -816,13 +816,17 @@
   (when (and (not (or finalizep (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)))
     (setf (find-class (class-name class)) class)
-    (update-cpl class (compute-class-precedence-list class))
+    (let ((*allow-forward-referenced-classes-in-cpl-p*
+	   (class-has-a-forward-referenced-superclass-p class)))
+      (update-cpl class (compute-class-precedence-list class)))
     (update-slots class (compute-slots class))
     (update-gfs-of-class class)
     (update-inits class (compute-default-initargs class))
@@ -832,6 +836,9 @@
   (unless finalizep
     (dolist (sub (class-direct-subclasses class))
       (update-class sub nil))))
+)
+
+(pushnew :cmucl-19d-patch-002 *features*)
 
 ;;;
 ;;; Set values of shared slots from initforms inherited from