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]]]!
squeak-dev@lists.squeakfoundation.org