Skip to content
  1. Apr 12, 2009
  2. Feb 07, 2009
  3. Dec 17, 2007
  4. Dec 16, 2007
  5. Dec 01, 2007
  6. Nov 26, 2007
    • Pascal Costanza's avatar
      Added a garbage collector for layer caches. · 6274f673
      Pascal Costanza authored
      Whenever a layer definition is reinitialized (for example by calling reinitialize-instance or by evaluating a deflayer form for an already existing layer), all its entries in the layer activation caches are removed. This guarantees that adjoin-layer-using-class and remove-layer-using-class are called again when such a layer is activated or deactivated, even if those two generic functions have previously returned t as second values for that layer. Since layer-makunbound is implemented in terms of (setf find-class) and (setf class-name), which triggers a call to reinitialize-instance according to the CLOS MOP specification, this means that layer-makunbound causes the respective layer to be removed from the caches as well.
      
      Likewise, if adjoin-layer-using-class and remove-layer-using-class are specialized on a particular layer metaclass, all entries for layers of that layer metaclass are also removed from the layer activation caches. This happens also when methods for these generic functions are redefined.
      
      darcs-hash:3fa63d976bbdcff0ad9a75afc1fa0db696ec8139
      6274f673