[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
|