[Pkg] The Trunk: Tools-eem.735.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Dec 6 19:29:40 UTC 2016


Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.735.mcz

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

Name: Tools-eem.735
Author: eem
Time: 6 December 2016, 11:29:27.381109 am
UUID: 947917cc-cfaf-4c57-a031-bc7da795846e
Ancestors: Tools-topa.734

Provide a path for methods to compute their temp names.

=============== Diff against Tools-topa.734 ===============

Item was added:
+ ----- Method: DebuggerMethodMapForClosureCompiledMethods>>privateTempRefsForMethod:startpcsToBlockExtents: (in category 'private') -----
+ privateTempRefsForMethod: method startpcsToBlockExtents: startpcsToBlockExtents
+ 	"Answer the sequence of temps in scope in method in the natural order,
+ 	 outermost arguments and temporaries first, innermost last.  Each temp is
+ 	 a pair of the temp's name followed by a reference.  The reference can be
+ 		integer - index of temp in aContext
+ 		#( indirectionVectorIndex tempIndex ) - remote temp in indirectionVector at index in aContext
+ 		#( outer. temp reference ) - a temp reference in an outer context."
+ 	blockExtentsToTempRefs ifNil:
+ 		[blockExtentsToTempRefs := (method holdsTempNames
+ 										ifTrue: [method]
+ 										ifFalse: [methodNode]) blockExtentsToTempsMap.
+ 		 blockExtentsToTempRefs ifNil:
+ 			["an empty method.  shouldn't be able to step into here but it
+ 			  can happen in weird circumstances (i.e. with MethodWrapper)."
+ 			blockExtentsToTempRefs := Dictionary new.
+ 			blockExtentsToTempRefs
+ 				at: (startpcsToBlockExtents at: method initialPC)
+ 				put: {}].
+ 		 startpcsToTempRefs := Dictionary new].
+ 	^startpcsToTempRefs
+ 		at: method initialPC
+ 		ifAbsentPut:
+ 			[blockExtentsToTempRefs at: (startpcsToBlockExtents at: method initialPC)]!

Item was added:
+ ----- Method: DebuggerMethodMapForClosureCompiledMethods>>tempNamesForMethod: (in category 'accessing') -----
+ tempNamesForMethod: aMethod
+ 	"Answer an Array of all the temp names in scope in aMethod starting with
+ 	 the home's first local (the first argument or first temporary if no arguments)."
+ 	^(self
+ 		privateTempRefsForMethod: aMethod
+ 		startpcsToBlockExtents: aMethod startpcsToBlockExtents) collect:
+ 			[:pair| pair first]!



More information about the Packages mailing list