[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