The Trunk: Kernel-mt.897.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-mt.897.mcz

commits-2
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.897.mcz

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

Name: Kernel-mt.897
Author: mt
Time: 31 January 2015, 6:16:02.184 pm
UUID: 3fdc3270-04ea-1e45-a02e-1cc17c459fde
Ancestors: Kernel-eem.896

Dynamic variables will not store their default values into the process' env anymore. This supports changing the result of #default without having to terminate that process (or fiddling with the env var directly...)

=============== Diff against Kernel-eem.896 ===============

Item was changed:
  ----- Method: DynamicVariable class>>value:during: (in category 'accessing') -----
  value: anObject during: aBlock
 
+ | p oldValue outerScopeWasDynamic |
- | p oldValue |
  p := Processor activeProcess.
+ outerScopeWasDynamic := true.
+ oldValue := p
+ environmentAt: self
+ ifAbsent: [outerScopeWasDynamic := false. nil].
- oldValue := p environmentAt: self ifAbsent: [self default].
  ^[
  p environmentAt: self put: anObject.
  aBlock value ]
+ ensure: [ outerScopeWasDynamic
+ ifTrue: [p environmentAt: self put: oldValue]
+ ifFalse: [p environmentRemoveKey: self ifAbsent: []] ].!
- ensure: [ p environmentAt: self put: oldValue ].!