Squeak 4.6: Tools-eem.628.mcz

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

Squeak 4.6: Tools-eem.628.mcz

commits-2
Chris Muller uploaded a new version of Tools to project Squeak 4.6:
http://source.squeak.org/squeak46/Tools-eem.628.mcz

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

Name: Tools-eem.628
Author: eem
Time: 1 July 2015, 4:40:15.806 pm
UUID: 9f27ada3-52e9-4acb-83fe-2c117840e385
Ancestors: Tools-eem.627

Debugger: Extract the exception notification handler into its own method and use it for Through support also.

=============== Diff against Tools-eem.626 ===============

Item was changed:
  ----- Method: Debugger>>doStep (in category 'context stack menu') -----
  doStep
  "Send the selected message in the accessed method, and regain control
  after the invoked method returns."
 
  | currentContext newContext |
  self okToChange ifFalse: [^ self].
  self checkContextSelection.
  currentContext := self selectedContext.
+ newContext := self handleLabelUpdatesIn: [interruptedProcess completeStep: currentContext]
+ whenExecuting: currentContext.
+ newContext == currentContext ifTrue:
+ [newContext := interruptedProcess stepToSendOrReturn].
- newContext := interruptedProcess completeStep: currentContext.
- newContext == currentContext ifTrue: [
- newContext := interruptedProcess stepToSendOrReturn].
  self contextStackIndex > 1
  ifTrue: [self resetContext: newContext]
+ ifFalse:
+ [newContext == currentContext
- ifFalse: [newContext == currentContext
  ifTrue: [self changed: #contentsSelection.
  self updateInspectors]
  ifFalse: [self resetContext: newContext]].
  !

Item was added:
+ ----- Method: Debugger>>handleLabelUpdatesIn:whenExecuting: (in category 'context stack menu') -----
+ handleLabelUpdatesIn: aBlock whenExecuting: aContext
+ "Send the selected message in the accessed method, and regain control
+ after the invoked method returns."
+
+ ^aBlock
+ on: Notification
+ do: [:ex|
+ (ex tag isArray
+ and: [ex tag size = 2
+ and: [(ex tag first == aContext or: [ex tag first hasSender: aContext])]])
+ ifTrue:
+ [self labelString: ex tag second description.
+ ex resume]
+ ifFalse:
+ [ex pass]]!

Item was changed:
  ----- Method: Debugger>>stepIntoBlock (in category 'context stack menu') -----
  stepIntoBlock
  "Send messages until you return to the present method context.
  Used to step into a block in the method."
 
+ self handleLabelUpdatesIn:
+ [interruptedProcess stepToHome: self selectedContext]
+ whenExecuting: self selectedContext.
+ self resetContext: interruptedProcess stepToSendOrReturn!
- interruptedProcess stepToHome: self selectedContext.
- self resetContext: interruptedProcess stepToSendOrReturn.!