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

commits at source.squeak.org commits at source.squeak.org
Fri Mar 22 21:54:09 UTC 2013


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

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

Name: Kernel-eem.751
Author: eem
Time: 22 March 2013, 2:53:15.234 pm
UUID: ba80dd7e-4655-40c1-a0e1-d322c0d541e9
Ancestors: Kernel-eem.750

Now that the simulation guard is gone from doPrimitive:method:receiver:args:
the simulation machinery can avoid stepping into it, allowing
the debugger to debug doPrimitive:method:receiver:args:

=============== Diff against Kernel-eem.750 ===============

Item was changed:
  ----- Method: ContextPart>>send:super:numArgs: (in category 'instruction decoding') -----
  send: selector super: superFlag numArgs: numArgs
  	"Simulate the action of bytecodes that send a message with selector, 
  	selector. The argument, superFlag, tells whether the receiver of the 
  	message was specified with 'super' in the source method. The arguments 
  	of the message are found in the top numArgs locations on the stack and 
  	the receiver just below them."
  
+ 	| receiver arguments |
- 	| receiver arguments answer |
  	arguments := Array new: numArgs.
  	numArgs to: 1 by: -1 do: [ :i | arguments at: i put: self pop].
  	receiver := self pop.
+ 	QuickStep == self ifTrue:
+ 		[QuickStep := nil.
- 	selector == #doPrimitive:method:receiver:args:
- 		ifTrue: [answer := receiver 
- 					doPrimitive: (arguments at: 1)
- 					method: (arguments at: 2)
- 					receiver: (arguments at: 3)
- 					args: (arguments at: 4).
- 				self push: answer.
- 				^self].
- 	QuickStep == self ifTrue: [
- 		QuickStep := nil.
  		^self quickSend: selector to: receiver with: arguments super: superFlag].
  	^self send: selector to: receiver with: arguments super: superFlag!



More information about the Squeak-dev mailing list