[squeak-dev] The Trunk: Kernel-eem.896.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jan 29 22:29:48 UTC 2015


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

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

Name: Kernel-eem.896
Author: eem
Time: 29 January 2015, 2:29:21.555 pm
UUID: da5f62a8-f18c-4630-a319-d3130d2d4312
Ancestors: Kernel-eem.895

Tweak the write-back of variables in 
Process>>evaluate:onBehalfOf: so as not to
smash variables initialized in the process.

=============== Diff against Kernel-eem.895 ===============

Item was changed:
  ----- Method: Process>>evaluate:onBehalfOf: (in category 'private') -----
  evaluate: aBlock onBehalfOf: aProcess
  	"Evaluate aBlock setting effectiveProcess to aProcess, and all other variables other than
  	 the scheduling ones to those of aProcess.  Used in the execution simulation machinery
  	 to ensure that Processor activeProcess evaluates correctly when debugging."
  	| range savedVariables |
  	"range accesses everything after myList, e.g. threadId, effectiveProcess, name, island, env"
  	range := 5 to: Process instSize.
  	savedVariables := range collect: [:i| self instVarAt: i].
  	range do:
  		[:i| self instVarAt: i put: (aProcess instVarAt: i)].
  	effectiveProcess := aProcess.
  	^aBlock ensure:
  		["write back any assigned-to variables."
  		 range do:
  			[:i| | v |
+ 			((v := self instVarAt: i) ~~ (aProcess instVarAt: i)
+ 			 and: [v notNil]) ifTrue:
- 			(v := self instVarAt: i) ~~ (aProcess instVarAt: i) ifTrue:
  				[aProcess instVarAt: i put: v]].
  		 "restore old values"
  		 range with: savedVariables do:
  			[:i :var| self instVarAt: i put: var]]!



More information about the Squeak-dev mailing list