--- a/Autoload.st Sat Jun 19 00:49:38 1999 +0200
+++ b/Autoload.st Sat Jun 19 12:11:55 1999 +0200
@@ -440,6 +440,30 @@
"Modified: 24.4.1996 / 19:53:27 / cg"
!
+loadAndResendMessage
+ "common helper to autoload a class and define a subclass of it by sending
+ the sender-message again.
+ This is invoked by all #subClass... definition messages."
+
+ |sel args newClass|
+
+ sel := thisContext sender selector.
+ args := thisContext sender args.
+
+ "take care: subclassing Autoload must still be possible"
+ (self == Autoload) ifTrue:[
+ ^ self perform:sel inClass:Autoload class superclass withArguments:args
+ ].
+
+ newClass := self autoload.
+ newClass notNil ifTrue:[
+ ^ newClass perform:sel withArguments:args
+ ].
+ ^ nil
+
+ "Created: 8.2.1997 / 19:42:47 / cg"
+!
+
new
"catch new - load the class and resend #new to the real one"
@@ -497,77 +521,6 @@
^ self doesNotUnderstand:(Message selector:#respondsTo: with:aSelector)
"Modified: 26.5.1997 / 14:59:58 / cg"
-!
-
-subclass:nameSymbol instanceVariableNames:instVarNames classVariableNames:cVarNames poolDictionaries:pools category:cat
- "catch subclass creation - this forces missing superclasses to be
- loaded first"
-
- ^ self
- subclass:nameSymbol
- instanceVariableNames:instVarNames
- classVariableNames:cVarNames
- poolDictionaries:pools
- category:cat
- inEnvironment:(Class nameSpaceQuerySignal query)
-
- "Modified: / 8.2.1997 / 20:06:22 / cg"
- "Modified: / 18.3.1999 / 18:10:20 / stefan"
-!
-
-subclass:nameSymbol instanceVariableNames:instVarNames classVariableNames:cVarNames poolDictionaries:poolDicts category:cat inEnvironment:aNameSpace
- "catch subclass creation - this forces missing superclasses to be
- loaded first"
-
- |newClass sel args|
-
- "take care: subclassing Autoload must still be possible"
- (self == Autoload) ifTrue:[
- ^ super
- subclass:nameSymbol
- instanceVariableNames:instVarNames
- classVariableNames:cVarNames
- poolDictionaries:poolDicts
- category:cat
- inEnvironment:aNameSpace
- ].
-
- newClass := self autoload.
- sel := thisContext selector.
- args := thisContext args.
- newClass notNil ifTrue:[
- ^ newClass perform:sel withArguments:args
- ].
- ^ nil
-
- "Created: 8.2.1997 / 19:42:47 / cg"
-!
-
-subclass:nameSymbol instanceVariableNames:instVarNames classVariableNames:cVarNames poolDictionaries:poolDicts privateIn:owningClass
- "catch subclass creation - this forces missing superclasses to be
- loaded first"
-
- |newClass sel args|
-
- "take care: subclassing Autoload must still be possible"
- (self == Autoload) ifTrue:[
- ^ super
- subclass:nameSymbol
- instanceVariableNames:instVarNames
- classVariableNames:cVarNames
- poolDictionaries:poolDicts
- privateIn:owningClass
- ].
-
- newClass := self autoload.
- sel := thisContext selector.
- args := thisContext args.
- newClass notNil ifTrue:[
- ^ newClass perform:sel withArguments:args
- ].
- ^ nil
-
- "Created: 8.2.1997 / 19:42:47 / cg"
! !
!Autoload class methodsFor:'queries'!
@@ -624,6 +577,6 @@
!Autoload class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.92 1999-06-06 13:19:19 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.93 1999-06-19 10:11:55 cg Exp $'
! !
Autoload initialize!