[squeak-dev] The Trunk: Compiler-nice.229.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Apr 22 14:36:35 UTC 2012
Nicolas Cellier uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-nice.229.mcz
==================== Summary ====================
Name: Compiler-nice.229
Author: nice
Time: 22 April 2012, 4:35:27.085 pm
UUID: 1d6c6093-e2bb-4dce-92c0-3a4713132c54
Ancestors: Compiler-eem.228
Add missing initialization in Decompiler>>decompileBlock:
=============== Diff against Compiler-eem.228 ===============
Item was changed:
----- Method: Decompiler>>decompileBlock: (in category 'public access') -----
decompileBlock: aBlock
"Decompile aBlock, returning the result as a BlockNode.
Show temp names from source if available."
"Decompiler new decompileBlock: [3 + 4]"
| startpc end homeClass blockNode methodNode home |
(home := aBlock home) ifNil: [^ nil].
method := home method.
(homeClass := home methodClass) == #unknown ifTrue: [^ nil].
aBlock isClosure ifTrue:
[(methodNode := method decompileWithTemps)
ifNil: [^nil]
ifNotNil: [methodNode nodesDo: [:node| node pc = aBlock startpc ifTrue: [^node]]].
^self error: 'cannot find block node matching aBlock'].
constructor := self constructorForMethod: aBlock method.
self withTempNames: method methodNode tempNames.
self initSymbols: homeClass.
startpc := aBlock startpc.
end := aBlock endPC.
stack := OrderedCollection new: method frameSize.
+ lastJumpIfPcStack := OrderedCollection new.
caseExits := OrderedCollection new.
statements := OrderedCollection new: 20.
super method: method pc: startpc - 5.
blockNode := self blockTo: end.
stack isEmpty ifFalse: [self error: 'stack not empty'].
^blockNode statements first!
More information about the Squeak-dev
mailing list
|