[squeak-dev] The Trunk: Tools-eem.457.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 13 22:38:57 UTC 2013


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



More information about the Squeak-dev mailing list