[squeak-dev] The Trunk: Tools-bf.394.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Mar 19 19:09:40 UTC 2012


Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.394.mcz

==================== Summary ====================

Name: Tools-bf.394
Author: bf
Time: 19 March 2012, 8:09:09.124 pm
UUID: 798e0091-0a38-465c-b108-9d6a32f618ea
Ancestors: Tools-laza.393

Move decompilation logic from CodeHolder into CompiledMethod

=============== Diff against Tools-laza.393 ===============

Item was changed:
  ----- Method: CodeHolder>>decompiledSourceIntoContentsWithTempNames: (in category 'message list') -----
  decompiledSourceIntoContentsWithTempNames: showTempNames 
  	"Obtain a source string by decompiling the method's code, and place 
  	that source string into my contents.
  	Also return the string.
  	Get temps from source file if showTempNames is true."
  
+ 	| class selector method |
- 	| tempNames class selector method |
  	class := self selectedClassOrMetaClass.
  	selector := self selectedMessageName.
  	"Was method deleted while in another project?"
  	method := class compiledMethodAt: selector ifAbsent: [^ ''].
  
  	currentCompiledMethod := method.
+ 	contents := (showTempNames
+ 		ifTrue: [method decompileWithTemps]
+ 		ifFalse: [method decompile]) decompileString.
- 	(showTempNames not
- 			or: [method fileIndex > 0
- 					and: [(SourceFiles at: method fileIndex) isNil]])
- 		ifTrue: [
- 			"Emergency or no source file -- decompile without temp names "
- 			contents := (class decompilerClass new
- 						decompile: selector
- 						in: class
- 						method: method) decompileString]
- 		ifFalse: [tempNames := (class newCompiler
- 									parse: method getSourceFromFile asString
- 									in: class
- 									notifying: nil)
- 										generate: CompiledMethodTrailer defaultMethodTrailer;
- 										schematicTempNamesString.
- 			contents := ((class decompilerClass new withTempNames: tempNames)
- 						decompile: selector
- 						in: class
- 						method: method) decompileString].
  	contents := contents asText makeSelectorBoldIn: class.
  	^ contents copy!



More information about the Squeak-dev mailing list