[Pkg] The Trunk: Kernel-eem.872.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Sep 18 01:17:15 UTC 2014


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

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

Name: Kernel-eem.872
Author: eem
Time: 17 September 2014, 6:16:29.423 pm
UUID: 0ac9cda4-0343-4869-9539-152be1c23b79
Ancestors: Kernel-eem.871

Make skipBackBeforeJump bytecode-set agnostic.
Fix a typo.  stepToSendOrReturn doesn't need to use #|

=============== Diff against Kernel-eem.871 ===============

Item was changed:
  ----- Method: ContextPart>>stepToSendOrReturn (in category 'system simulation') -----
  stepToSendOrReturn
  	"Simulate the execution of bytecodes until either sending a message or 
+ 	 returning a value to the receiver (that is, until switching contexts)."
- 	returning a value to the receiver (that is, until switching contexts)."
  
  	| ctxt |
+ 	[self willReallySend or: [self willReturn or: [self willStore]]] whileFalse:
+ 		[ctxt := self step.
+ 		 ctxt == self ifFalse:
+ 			[self halt. 
+ 			 "Caused by mustBeBoolean handling"
+ 			 ^ctxt]]!
- 	[self willReallySend | self willReturn | self willStore]
- 		whileFalse: [
- 			ctxt := self step.
- 			ctxt == self ifFalse: [self halt. 
- 				"Caused by mustBeBoolean handling"
- 				^ctxt]]!

Item was changed:
  ----- Method: ContextPart>>tempsAndValues (in category 'debugger access') -----
  tempsAndValues
+ 	"Return a string of the temporary variables and their current values"
- 	"Return a string of the temporary variabls and their current values"
  	^self debuggerMap tempsAndValuesForContext: self!

Item was changed:
  ----- Method: InstructionStream>>skipBackBeforeJump (in category 'scanning') -----
  skipBackBeforeJump
+ 	"Assuming that the receiver is positioned just after a jump, skip back one or two bytes,
+ 	 depending on the size of the previous jump instruction."
+ 	| scanner client prevPc |
+ 	scanner := InstructionStream on: self method.
+ 	client := InstructionClient new.
+ 	[scanner pc < pc] whileTrue:
+ 		[prevPc := scanner pc.
+ 		 scanner interpretNextInstructionFor: client].
+ 	scanner pc: prevPc.
+ 	(scanner willJumpIfTrue or: [scanner willJumpIfFalse]) ifFalse:
+ 		[self error: 'Where''s the jump??'].
+ 	self jump: prevPc - pc!
- 	"Assuming that the receiver is positioned jast after a jump, skip back one or two bytes, depending on the size of the previous jump instruction."
- 	| strm short |
- 	strm := InstructionStream on: self method.
- 	(strm scanFor: [:byte |
- 		((short := byte between: 152 and: 159) or: [byte between: 168 and: 175])
- 			and: [strm pc = (short ifTrue: [pc-1] ifFalse: [pc-2])]]) ifFalse: [self error: 'Where''s the jump??'].
- 	self jump: (short ifTrue: [-1] ifFalse: [-2]).
- !



More information about the Packages mailing list