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

commits at source.squeak.org commits at source.squeak.org
Mon Apr 16 20:29:38 UTC 2012


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

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

Name: Tools-eem.401
Author: eem
Time: 16 April 2012, 1:29:04.175 pm
UUID: 64653d7e-ca28-4119-9773-35c62ff62390
Ancestors: Tools-eem.400

Fix another potential bounds violation in namedTempAt:in:,
e.g. in [ |a| a:=2 ] asContext tempsAndValues

=============== Diff against Tools-eem.400 ===============

Item was changed:
  ----- Method: DebuggerMethodMapForClosureCompiledMethods>>privateDereference:in: (in category 'private') -----
  privateDereference: tempReference in: aContext
  	"Fetch 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]]
- 			[aContext tempAt: tempReference]
  		ifFalse:
  			[tempReference first == #outer
  				ifTrue:
  					[self privateDereference: tempReference last
  						in: aContext outerContext]
  				ifFalse: "If stopped before indirection vectors are created they will be nil. Simply answer nil"
  					[(aContext tempAt: tempReference first) ifNotNil:
  						[:indirectionVector|
  						indirectionVector at: tempReference second]]]!



More information about the Squeak-dev mailing list