[Pkg] 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 Packages mailing list