Skip to content
  • Robert P. Goldman's avatar
    New fix for reuse of COMPONENTS based on REINITIALIZE-INSTANCE mehtods. · 97c5462a
    Robert P. Goldman authored
    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.
    97c5462a