#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Tue, 25 Jun 2019 16:55:29 +0200
changeset 24362 be532a9cf6cf
parent 24361 776535e4c8b7
child 24363 3188fbab129f
#FEATURE by cg class: InlineObject class added: #slotNamesAndValues:mutable: #slotNamesAndValuesFromDictionary:mutable: changed: #slotNamesAndValues: #slotNamesAndValuesFromDictionary:
InlineObject.st
--- a/InlineObject.st	Tue Jun 25 16:44:05 2019 +0200
+++ b/InlineObject.st	Tue Jun 25 16:55:29 2019 +0200
@@ -157,20 +157,52 @@
     "return a new inline object given slot names and slot values as alternating elements
      in the argument, namesAndValues"
     
-    ^ self slotNames:(namesAndValues keysAndValuesSelect:[:idx :val | idx odd])
-           values:(namesAndValues keysAndValuesSelect:[:idx :val | idx even])
+    ^ self 
+        slotNames:(namesAndValues keysAndValuesSelect:[:idx :val | idx odd])
+        values:(namesAndValues keysAndValuesSelect:[:idx :val | idx even])
+        mutable:true
 
     "
      InlineObject slotNamesAndValues:#('foo' 10 'bar' 20 'baz' 30)
     "
 
     "Created: / 21-01-2019 / 13:15:46 / Claus Gittinger"
+    "Modified: / 25-06-2019 / 16:55:02 / Claus Gittinger"
+!
+
+slotNamesAndValues:namesAndValues mutable:beMutable
+    "return a new inline object given slot names and slot values as alternating elements
+     in the argument, namesAndValues"
+    
+    ^ self 
+        slotNames:(namesAndValues keysAndValuesSelect:[:idx :val | idx odd])
+        values:(namesAndValues keysAndValuesSelect:[:idx :val | idx even])
+        mutable:beMutable
+
+    "
+     InlineObject slotNamesAndValues:#('foo' 10 'bar' 20 'baz' 30)
+    "
+
+    "Created: / 25-06-2019 / 16:54:47 / Claus Gittinger"
 !
 
 slotNamesAndValuesFromDictionary:namesAndValuesDict
     "return a new inline object given slot names and slot values as elements
      in the argument, namesAndValuesDict"
 
+    ^ self slotNamesAndValuesFromDictionary:namesAndValuesDict mutable:true
+
+    "
+     InlineObject slotNamesAndValuesFromDictionary:(Dictionary withKeyValuePairs:#(('foo' 10) ('bar' 20) ('baz' 30)))
+    "
+
+    "Created: / 25-06-2019 / 16:31:38 / Claus Gittinger"
+!
+
+slotNamesAndValuesFromDictionary:namesAndValuesDict mutable:beMutable
+    "return a new inline object given slot names and slot values as elements
+     in the argument, namesAndValuesDict"
+
     |sz keys values idx|
 
     sz := namesAndValuesDict size.
@@ -182,13 +214,13 @@
         values at:idx put:v.
         idx := idx + 1.
     ].
-    ^ self slotNames:keys values:values
+    ^ self slotNames:keys values:values mutable:beMutable
 
     "
      InlineObject slotNamesAndValuesFromDictionary:(Dictionary withKeyValuePairs:#(('foo' 10) ('bar' 20) ('baz' 30)))
     "
 
-    "Created: / 25-06-2019 / 16:31:38 / Claus Gittinger"
+    "Created: / 25-06-2019 / 16:53:50 / Claus Gittinger"
 ! !
 
 !InlineObject class methodsFor:'prototype access'!