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

commits at source.squeak.org commits at source.squeak.org
Thu Mar 29 22:53:41 UTC 2012


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:
- 	(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