[squeak-dev] The Trunk: Compiler-eem.228.mcz

Levente Uzonyi leves at elte.hu
Fri Mar 30 09:25:35 UTC 2012


On Thu, 29 Mar 2012, commits at source.squeak.org wrote:

> Eliot Miranda uploaded a new version of Compiler to project The Trunk:
> http://source.squeak.org/trunk/Compiler-eem.228.mcz
>
> ==================== Summary ====================
>
> Name: Compiler-eem.228
> Author: eem
> Time: 29 March 2012, 3:53:13.947 pm
> UUID: d35c5eea-e31b-440a-bc18-18a921444c4d
> Ancestors: Compiler-eem.227
>
> Fix snafu in Compiler-eem.227 at: => at:ifAbsent:. in decompiler
>
> =============== Diff against Compiler-eem.227 ===============
>
> Item was changed:
>  ----- Method: DecompilerConstructorForClosures>>codeMethod:block:tempVars:primitive:class: (in category 'constructor') -----
>  codeMethod: selector block: block tempVars: vars primitive: primitive class: class
>
>  	| blockNode selectorNode visibleTemps invisibleTemps arguments temporaries properties |
>  	selectorNode := self codeSelector: selector code: nil.
>  	tempVars := vars.
>  	visibleTemps := OrderedCollection new.
>  	invisibleTemps := OrderedCollection new.
>  	tempVars do: [:t|
>  				   ((t isIndirectTempVector or: [t scope >= 0])
>  						ifTrue: [visibleTemps]
>  						ifFalse: [invisibleTemps]) addLast: t].
>  	arguments := visibleTemps copyFrom: 1 to: nArgs.
>  	temporaries := visibleTemps copyFrom: nArgs + 1 to: visibleTemps size.
>  	block
>  		arguments: arguments;
>  		temporaries: temporaries.
>  	properties := method properties copy.
> + 	(properties at: #onceCache ifAbsent: []) ifNotNil:

Isn't #at:ifPresent: better here? Can the value be nil?


Levente

> - 	(properties at: #onceCache) ifNotNil:
>  		[:onceCache|
>  		 properties := properties copyWithout: (Association
>  													key: #onceCache
>  													value: onceCache)].
>  	blockNode := MethodNode new
>  		selector: selectorNode
>  		arguments: arguments
>  		precedence: selector precedence
>  		temporaries: temporaries
>  		block: block
>  		encoder: (EncoderForV3PlusClosures new initScopeAndLiteralTables
>  					temps: visibleTemps, invisibleTemps
>  					literals: literalValues
>  					class: class)
>  		primitive: primitive
>  		properties: properties.
>  	blockNode properties method: blockNode.
>  	^blockNode!
>
>
>


More information about the Squeak-dev mailing list