[squeak-dev] The Trunk: Kernel-eem.675.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Mar 19 21:52:05 UTC 2012
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.675.mcz
==================== Summary ====================
Name: Kernel-eem.675
Author: eem
Time: 19 March 2012, 2:51:13.711 pm
UUID: 44dbc698-62dc-4f6b-afd0-c987fdadb1f7
Ancestors: Kernel-eem.674
Fix the improved decompileWithTempNames for doits
without temp names. 673 breaks e.g.
DecompilerTests new testRemoteTemp
=============== Diff against Kernel-eem.674 ===============
Item was changed:
----- Method: CompiledMethod>>decompileWithTemps (in category 'decompiling') -----
decompileWithTemps
+ "Return the decompiled parse tree that represents self, but with the temp names obtained
+ either by compiling the sourcecode, or directly if the method has temps in its trailer."
- "Return the decompiled parse tree that represents self, but with the temp names
- either by compiling the sourcecode, or direct if the method has temps in its trailer."
+ | class selector tempNames source |
- | class selector tempNames |
class := self methodClass ifNil: [Object].
selector := self selector ifNil: [self defaultSelector].
+ self holdsTempNames
+ ifTrue: [tempNames := self tempNamesString]
+ ifFalse:
+ ["No source file or no source (e.g. doits) and no temp names
+ -- decompile without temp names "
+ ((self fileIndex > 0 and: [(SourceFiles at: self fileIndex) isNil])
+ or: [(source := self getSourceFromFile) isNil]) ifTrue:
+ [^self decompile].
+ tempNames := (class newCompiler
+ parse: source asString
- (self fileIndex > 0 and: [(SourceFiles at: self fileIndex) isNil]) ifTrue:
- "Emergency or no source file -- decompile without temp names "
- [^self decompile].
-
- tempNames := self holdsTempNames
- ifTrue: [self tempNamesString]
- ifFalse: [(class newCompiler
- parse: self getSourceFromFile asString
in: class
notifying: nil)
generate: CompiledMethodTrailer defaultMethodTrailer;
schematicTempNamesString].
+
^(self decompilerClass new withTempNames: tempNames)
decompile: selector
in: class
method: self methodForDecompile!
More information about the Squeak-dev
mailing list
|