The Trunk: Tools-eem.457.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.457.mcz

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

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

Name: Tools-eem.457
Author: eem
Time: 13 March 2013, 3:38:18.611 pm
UUID: 6a200caf-d602-48bc-8da5-fbeb8ec49eee
Ancestors: Tools-eem.456

Debugger robustness when attempting to assign to outer
temps when the outer context has returned and the stack
has been cut-back to remove the temps.

=============== Diff against Tools-eem.456 ===============

Item was changed:
  ----- Method: DebuggerMethodMapForClosureCompiledMethods>>privateDereference:in:put: (in category 'private') -----
  privateDereference: tempReference in: aContext put: aValue
  "Assign the temporary with reference tempReference in aContext.
  tempReference can be
  integer - direct temp reference
  #( indirectionVectorIndex tempIndex ) - remote temp in indirectionVector at index
  #( outer. temp reference ) - a temp reference in an outer context."
  ^tempReference isInteger
  ifTrue:
+ [tempReference <= aContext stackPtr
+ ifTrue:
+ [aContext tempAt: tempReference put: aValue]
+ ifFalse:
+ [UIManager default inform: 'Cannot assign temp because it is no longer on stack.\Activation has returned?' withCRs.
+ nil]]
- [aContext tempAt: tempReference put: aValue]
  ifFalse:
  [tempReference first == #outer
  ifTrue:
  [self privateDereference: tempReference last
  in: aContext outerContext
  put: aValue]
  ifFalse: "If stopped before indirection vectors are created they will be nil."
+ [tempReference first <= aContext stackPtr
+ ifTrue:
+ [(aContext tempAt: tempReference first)
+ ifNil: [UIManager default inform: 'Cannot assign remote temp because indirection vector is nil.\Too early in method execution?' withCRs.
+ nil]
+ ifNotNil:
+ [:indirectionVector|
+ indirectionVector
+ at: tempReference second
+ put: aValue]]
+ ifFalse:
+ [UIManager default inform: 'Cannot assign remote temp because it is no longer on stack.\Activation has returned?' withCRs.
+ nil]]]!
- [(aContext tempAt: tempReference first)
- ifNil: [UIManager default inform: 'Cannot assign remote temp because indirection vector is nil.\Too early in method execution?' withCRs.
- nil]
- ifNotNil:
- [:indirectionVector|
- indirectionVector
- at: tempReference second
- put: aValue]]]!