New fix for reuse of COMPONENTS based on REINITIALIZE-INSTANCE mehtods.
Thanks to Christophe Rhodes for suggestions. We use REINITIALIZE-INSTANCE to clear out-of-date information out of the slots of COMPONENT objects while they are reused. Two complications presented themselves: 1. Previously, I believe for orthogonality, we would either get an old (reused) COMPONENT or make a new one, but in either case, the handling of initargs was done by REINITIALIZE-INSTANCE. This made it impossible for the REINITIALIZE-INSTANCE methods to "know" that they were in a real sense RE-initializing. At the expense of some code duplication, I broke this sharing, so that now REINITIALIZE-INSTANCE should only be called when we are reusing a COMPONENT, with an exception below... 2. We always need to have a SYSTEM object active for the defsystem we are currently processing. Accordingly, SYSTEM objects will *ALWAYS* be RE-initialized. So the REINITIALIZE-INSTANCE method required a little care (in particular, the SOURCE-FILE slot needed delicate handling.
parent
9c74bac8
Please register or sign in to comment