[squeak-dev] The Trunk: Morphic-ct.1906.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Feb 24 16:41:52 UTC 2022


Christoph Thiede uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.1906.mcz

==================== Summary ====================

Name: Morphic-ct.1906
Author: ct
Time: 24 February 2022, 5:41:18.342147 pm
UUID: 4cdef9c0-ecb4-1c40-bb54-8fd5153939e6
Ancestors: Morphic-mt.1904

For Morph properties, establishes the common return value semantics known from most other collection protocols. I.e., #setProperty:... now answers the added value and #removeProperty: answers the removed value.

This can also help us to clean up a number of senders, browse this for an impression:
	self systemNavigation browseAllCallsOn: #removeProperty: and: #valueOfProperty:

Thanks to Marcel for the review! Treats Morphic-ct.1905.

=============== Diff against Morphic-mt.1904 ===============

Item was changed:
  ----- Method: Morph>>removeProperty: (in category 'accessing - properties') -----
  removeProperty: aSymbol 
+ 	"Remove the property named aSymbol if it exists. Answer the old value or nil."
+ 	extension ifNil: [^ nil].
+ 	^ extension removeProperty: aSymbol!
- 	"removes the property named aSymbol if it exists"
- 	extension ifNil:  [^ self].
- 	extension removeProperty: aSymbol!

Item was changed:
  ----- Method: Morph>>setProperties: (in category 'accessing - properties') -----
  setProperties: aList
+ 	"Set many properties at once from a list of prop, value, prop, value. Answer the list."
- 	"Set many properties at once from a list of prop, value, prop, value"
  
  	1 to: aList size by: 2 do: [:ii |
+ 		self setProperty: (aList at: ii) toValue: (aList at: ii+1)].
+ 	^ aList!
- 		self setProperty: (aList at: ii) toValue: (aList at: ii+1)].!

Item was changed:
  ----- Method: Morph>>setProperty:toValue: (in category 'accessing - properties') -----
  setProperty: aSymbol toValue: anObject 
+ 	"Change the receiver's property named aSymbol to anObject. Answer anObject."
+ 	anObject ifNil: [
+ 		self removeProperty: aSymbol.
+ 		^ anObject].
+ 	^ self assureExtension setProperty: aSymbol toValue: anObject!
- 	"change the receiver's property named aSymbol to anObject"
- 	anObject ifNil: [^ self removeProperty: aSymbol].
- 	self assureExtension setProperty: aSymbol toValue: anObject!

Item was changed:
  ----- Method: MorphExtension>>removeProperty: (in category 'accessing - other properties') -----
  removeProperty: aSymbol 
+ 	"Removes the property named aSymbol if it exists. Answer the old value or nil."
+ 	| value |
+ 	otherProperties ifNil: [^ nil].
+ 	value := otherProperties removeKey: aSymbol ifAbsent: [].
+ 	otherProperties ifEmpty: [self removeOtherProperties].
+ 	^ value!
- 	"removes the property named aSymbol if it exists"
- 	otherProperties ifNil: [^ self].
- 	otherProperties removeKey: aSymbol ifAbsent: [].
- 	otherProperties isEmpty ifTrue: [self removeOtherProperties]!

Item was changed:
  ----- Method: MorphExtension>>setProperty:toValue: (in category 'accessing - other properties') -----
  setProperty: aSymbol toValue: abObject 
+ 	"Change the receiver's property named aSymbol to anObject. Answer anObject."
+ 	^ self assureOtherProperties at: aSymbol put: abObject!
- 	"change the receiver's property named aSymbol to anObject"
- 	self assureOtherProperties at: aSymbol put: abObject!



More information about the Squeak-dev mailing list