[Pkg] The Trunk: System-nice.360.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Aug 22 19:22:25 UTC 2010


Nicolas Cellier uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-nice.360.mcz

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

Name: System-nice.360
Author: nice
Time: 22 August 2010, 9:21:39.144 pm
UUID: 70577a51-fb9c-4b09-9082-2ec8c70b31ef
Ancestors: System-nice.359

Fix WeakMessageSend Part 2.
Thanks to Juan, see http://bugs.squeak.org/view.php?id=7352


=============== Diff against System-nice.359 ===============

Item was changed:
  ----- Method: WeakActionSequenceTrappingErrors>>valueStartingFrom: (in category 'evaluating') -----
  valueStartingFrom: startIndex
  	"Do the same as my parent, but make sure that all actions that do not 
  	give errors are evaluated before resignaling the ones that gave errors 
  	(giving the chance to clients to handle them)."
  
  	"Note: I currently trap Halt,Error so that I am sure to get a Halt event in case of a Halt. This is being fixed in the exception system - when the fix is done it will be enough to capture only Error."
  
  	| each answer |
+ 	answer := nil.
  	startIndex to: self size do: [:index |
  		each := self at: index.
+ 		[
+ 			answer := each valueOtherwise: [ answer ].
+ 		]
+ 			on: Halt , Error
+ 			do: [:exc | 
+ 				self valueStartingFrom: index + 1.
+ 				exc pass]].
- 		each isReceiverOrAnyArgumentGarbage ifFalse: [
- 			[answer := each value]
- 				on: Halt, Error
- 				do: [:exc | 
- 						self valueStartingFrom: index + 1.
- 						exc pass]]].
  	^ answer!

Item was changed:
  ----- Method: WeakActionSequenceTrappingErrors>>valueWithArguments:startingFrom: (in category 'evaluating') -----
  valueWithArguments: anArray startingFrom: startIndex
  	"Do the same as my parent, but make sure that all actions that do not 
  	give errors are evaluated before resignaling the ones that gave errors 
  	(giving the chance to clients to handle them)."
  
  	"Note: I currently trap Halt,Error so that I am sure to get a Halt event in case of a Halt. This is being fixed in the exception system - when the fix is done it will be enough to capture only Error."
  
  	| each answer |
+ 	answer := nil.
  	startIndex to: self size do: [:index |
  		each := self at: index.
+ 		[
+ 			answer := each valueWithArguments: anArray otherwise: [ answer ].
+ 		]
+ 			on: Halt , Error
+ 			do: [:exc | 
+ 				self valueWithArguments: anArray startingFrom: index + 1.
+ 				exc pass]].
- 		each isReceiverOrAnyArgumentGarbage ifFalse: [
- 			[answer := each valueWithArguments: anArray]
- 				on: Halt, Error
- 				do: [:exc | 
- 						self valueWithArguments: anArray startingFrom: index + 1.
- 						exc pass]]].
  	^ answer!



More information about the Packages mailing list