InlineObject.st
changeset 24400 2a3db8283621
parent 24362 be532a9cf6cf
child 24511 79c0b50a6788
equal deleted inserted replaced
24399:4bbded833e45 24400:2a3db8283621
    15 
    15 
    16 "{ NameSpace: Smalltalk }"
    16 "{ NameSpace: Smalltalk }"
    17 
    17 
    18 Object subclass:#InlineObject
    18 Object subclass:#InlineObject
    19 	instanceVariableNames:''
    19 	instanceVariableNames:''
    20 	classVariableNames:'MapOfMutableClasses MapOfImmutableClasses'
    20 	classVariableNames:'MapOfImmutableClasses MapOfMutableClasses'
    21 	poolDictionaries:''
    21 	poolDictionaries:''
    22 	category:'Kernel-Classes'
    22 	category:'Kernel-Classes'
    23 !
    23 !
    24 
    24 
    25 InlineObject subclass:#InlineObjectPrototype
    25 InlineObject subclass:#InlineObjectPrototype
   122     ].    
   122     ].    
   123 
   123 
   124     (subclass := map at:names ifAbsent:nil) isNil ifTrue:[
   124     (subclass := map at:names ifAbsent:nil) isNil ifTrue:[
   125         Class withoutUpdatingChangesDo:[
   125         Class withoutUpdatingChangesDo:[
   126             subclass := self 
   126             subclass := self 
   127                             subclass:#someInlineObject
   127                             subclass:#AnonymousInlineObject
   128                             instanceVariableNames:names
   128                             instanceVariableNames:names
   129                             classVariableNames:nil
   129                             classVariableNames:nil
   130                             poolDictionaries:nil
   130                             poolDictionaries:nil
   131                             category:nil
   131                             category:nil
   132                             inEnvironment:nil.
   132                             inEnvironment:nil.
   149     "
   149     "
   150      InlineObject slotNames:#('foo' 'bar' 'baz') values:#(1 2 3)
   150      InlineObject slotNames:#('foo' 'bar' 'baz') values:#(1 2 3)
   151     "
   151     "
   152 
   152 
   153     "Created: / 25-06-2019 / 16:40:36 / Claus Gittinger"
   153     "Created: / 25-06-2019 / 16:40:36 / Claus Gittinger"
       
   154     "Modified: / 28-06-2019 / 14:38:32 / Claus Gittinger"
   154 !
   155 !
   155 
   156 
   156 slotNamesAndValues:namesAndValues
   157 slotNamesAndValues:namesAndValues
   157     "return a new inline object given slot names and slot values as alternating elements
   158     "return a new inline object given slot names and slot values as alternating elements
   158      in the argument, namesAndValues"
   159      in the argument, namesAndValues"