The Trunk: Tools-eem.735.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tools-eem.735.mcz

commits-2
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]!