#TUNING by cg
class: InlineObject
class definition
class: InlineObject class
changed: #slotNames:values:
--- a/InlineObject.st Tue Jan 22 16:47:19 2019 +0100
+++ b/InlineObject.st Tue Jan 22 17:02:27 2019 +0100
@@ -17,7 +17,7 @@
Object subclass:#InlineObject
instanceVariableNames:''
- classVariableNames:''
+ classVariableNames:'MapOfClasses'
poolDictionaries:''
category:'Kernel-Classes'
!
@@ -90,20 +90,26 @@
|subclass inst|
- Class withoutUpdatingChangesDo:[
- subclass := self
- subclass:#someInlineObject
- instanceVariableNames:names
- classVariableNames:nil
- poolDictionaries:nil
- category:nil
- inEnvironment:nil.
- names do:[:each |
- subclass compile:('%1 ^ %1' bindWith:each)
- categorized:'accessing'.
- subclass compile:('%1:arg %1 := arg.' bindWith:each)
- categorized:'accessing'.
+ MapOfClasses isNil ifTrue:[
+ MapOfClasses := Dictionary new.
+ ].
+ (subclass := MapOfClasses at:names ifAbsent:nil) isNil ifTrue:[
+ Class withoutUpdatingChangesDo:[
+ subclass := self
+ subclass:#someInlineObject
+ instanceVariableNames:names
+ classVariableNames:nil
+ poolDictionaries:nil
+ category:nil
+ inEnvironment:nil.
+ names do:[:each |
+ subclass compile:('%1 ^ %1' bindWith:each)
+ categorized:'accessing'.
+ subclass compile:('%1:arg %1 := arg.' bindWith:each)
+ categorized:'accessing'.
+ ].
].
+ MapOfClasses at:names put:subclass.
].
inst := (Array withAll:slotValues) changeClassTo:subclass.
^ inst
@@ -113,6 +119,7 @@
"
"Created: / 21-01-2019 / 13:10:14 / Claus Gittinger"
+ "Modified: / 22-01-2019 / 17:01:42 / Claus Gittinger"
!
slotNamesAndValues:namesAndValues