Autoload.st
changeset 12260 60f107e81c10
parent 12252 93c323c8a166
child 12270 a67c0b787173
equal deleted inserted replaced
12259:bcf1c65266c3 12260:60f107e81c10
   101         AutoloadFailedSignal := ProceedableError newSignal
   101         AutoloadFailedSignal := ProceedableError newSignal
   102                                     nameClass:self message:#autoloadFailedSignal;
   102                                     nameClass:self message:#autoloadFailedSignal;
   103                                     notifierString:'autoload failed'.
   103                                     notifierString:'autoload failed'.
   104 
   104 
   105         self class changeClassTo:AutoloadMetaclass.
   105         self class changeClassTo:AutoloadMetaclass.
   106         self setSuperclass:nil.
       
   107         ObjectMemory flushCaches.
   106         ObjectMemory flushCaches.
   108     ].
   107     ].
   109     LoadedClasses isNil ifTrue:[
   108     LoadedClasses isNil ifTrue:[
   110         LoadedClasses := IdentitySet new.
   109         LoadedClasses := IdentitySet new.
   111     ].
   110     ].
   385                         isNil ifTrue:[
   384                         isNil ifTrue:[
   386                             "/ temporary: try without stx/package prefix
   385                             "/ temporary: try without stx/package prefix
   387                             "/ this will vanish as soon as source-directory
   386                             "/ this will vanish as soon as source-directory
   388                             "/ is always guaranteed to contain an stx-subtree
   387                             "/ is always guaranteed to contain an stx-subtree
   389                             ((packageID startsWith:'stx/') 
   388                             ((packageID startsWith:'stx/') 
   390                             or:[packageID startsWith:'stx:']) ifTrue:[
   389                              or:[packageID startsWith:'stx:']) ifTrue:[
   391                                 Smalltalk 
   390                                 Smalltalk 
   392                                     fileInClass:myName
   391                                     fileInClass:myName
   393                                     package:(packageID copyFrom:5)
   392                                     package:(packageID copyFrom:5)
   394                                     initialize:false 
   393                                     initialize:false 
   395                                     lazy:LazyLoading
   394                                     lazy:LazyLoading
   840     sel := thisContext sender selector.
   839     sel := thisContext sender selector.
   841     args := thisContext sender args.
   840     args := thisContext sender args.
   842 
   841 
   843     "take care: subclassing Autoload must still be possible"
   842     "take care: subclassing Autoload must still be possible"
   844     (self == Autoload) ifTrue:[
   843     (self == Autoload) ifTrue:[
   845         ^ self perform:sel inClass:Autoload class superclass withArguments:args
   844         ^ self perform:sel inClass:self class superclass withArguments:args
   846     ].
   845     ].
   847 
   846 
   848     newClass := self autoload.
   847     newClass := self autoload.
   849     newClass notNil ifTrue:[
   848     newClass notNil ifTrue:[
   850         newClass isLoaded ifTrue:[
   849         newClass isLoaded ifTrue:[
   935 ! !
   934 ! !
   936 
   935 
   937 !Autoload class methodsFor:'documentation'!
   936 !Autoload class methodsFor:'documentation'!
   938 
   937 
   939 version
   938 version
   940     ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.153 2009-10-13 09:55:18 stefan Exp $'
   939     ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.154 2009-10-13 16:43:33 stefan Exp $'
   941 !
   940 !
   942 
   941 
   943 version_CVS
   942 version_CVS
   944     ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.153 2009-10-13 09:55:18 stefan Exp $'
   943     ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.154 2009-10-13 16:43:33 stefan Exp $'
   945 ! !
   944 ! !
   946 
   945 
   947 Autoload initialize!
   946 Autoload initialize!