[squeak-dev] The Trunk: Tools-eem.529.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Oct 6 19:58:21 UTC 2014


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

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

Name: Tools-eem.529
Author: eem
Time: 6 October 2014, 12:57:06.915 pm
UUID: 3c226418-51a9-4b8a-9edc-9015b15b27cb
Ancestors: Tools-cmm.528

Have Debugger>>openFullNoSuspendLabel: et al
answer the windows they create.  Hence also change
Debugger class>>openInterrupt:onProcess: to answer
the debugger, not the window.

=============== Diff against Tools-cmm.528 ===============

Item was changed:
  ----- Method: Debugger class>>openInterrupt:onProcess: (in category 'opening') -----
  openInterrupt: aString onProcess: interruptedProcess
  	"Open a notifier in response to an interrupt. An interrupt occurs when the user types the interrupt key (cmd-. on Macs, ctrl-c or alt-. on other systems) or when the low-space watcher detects that memory is low."
  	| debugger |
  	<primitive: 19> "Simulation guard"
  	debugger := self new.
  	debugger
  		process: interruptedProcess
  		controller: ((Smalltalk isMorphic not
  					and: [ScheduledControllers activeControllerProcess == interruptedProcess])
  						ifTrue: [ScheduledControllers activeController])
  		context: interruptedProcess suspendedContext.
  	debugger externalInterrupt: true.
  
  	Preferences logDebuggerStackToFile ifTrue:
  		[(aString includesSubString: 'Space') & (aString includesSubString: 'low')
  			ifTrue: [Smalltalk logError: aString inContext: debugger interruptedContext to: 'LowSpaceDebug.log']
  			"logging disabled for 4.3 release, see
  				http://lists.squeak.org/pipermail/squeak-dev/2011-December/162503.html"
  			"ifFalse: [Smalltalk logSqueakError: aString inContext: debugger interruptedContext]"].
  
  	Preferences eToyFriendly ifTrue: [World stopRunningAll].
+ 	^debugger
+ 		openNotifierContents: nil label: aString;
+ 		yourself
- 	^ debugger
- 		openNotifierContents: nil
- 		label: aString
  !

Item was changed:
  ----- Method: Debugger>>openFullNoSuspendFrom: (in category 'initialize') -----
  openFullNoSuspendFrom: topView
+ 	"Create, schedule and answer a full debugger with the given label. Do not terminate the current active process."
- 	"Create and schedule a full debugger with the given label. Do not terminate the current active process."
  
  	| oldContextStackIndex |
  	oldContextStackIndex := contextStackIndex.
  	self expandStack. "Sets contextStackIndex to zero."
+ 	^[ToolBuilder default openDebugger: self label: topView label closing: topView] ensure:
+ 		[self toggleContextStackIndex: oldContextStackIndex]!
- 	ToolBuilder default openDebugger: self label: topView label closing: topView.
- 	self toggleContextStackIndex: oldContextStackIndex.!

Item was changed:
  ----- Method: Debugger>>openFullNoSuspendLabel: (in category 'initialize') -----
  openFullNoSuspendLabel: aString
+ 	"Create, schedule and answer a full debugger with the given label. Do not terminate the current active process."
- 	"Create and schedule a full debugger with the given label. Do not terminate the current active process."
  
  	| oldContextStackIndex |
  	oldContextStackIndex := contextStackIndex.
  	self expandStack. "Sets contextStackIndex to zero."
+ 	^[ToolBuilder default openDebugger: self label: aString] ensure:
+ 		[self toggleContextStackIndex: oldContextStackIndex]!
- 	ToolBuilder default openDebugger: self label: aString.
- 	self toggleContextStackIndex: oldContextStackIndex.!

Item was changed:
  ----- Method: Debugger>>openNotifierContents:label: (in category 'initialize') -----
  openNotifierContents: msgString label: label
+ 	"Create, schedule and answer a notifier view with the given label and message. A notifier view shows just the message or the first several lines of the stack, with a menu that allows the user to open a full debugger if so desired."
- 	"Create and schedule a notifier view with the given label and message. A notifier view shows just the message or the first several lines of the stack, with a menu that allows the user to open a full debugger if so desired."
  	"NOTE: When this method returns, a new process has been scheduled to run the windows, and thus this notifier, but the previous active process has not been suspended.  The sender will do this."
  	| msg builder spec |
  
  	Sensor flushKeyboard.
  	savedCursor := Cursor currentCursor.
  	Cursor currentCursor: Cursor normal.
  	(label beginsWith: 'Space is low')
  		ifTrue: [msg := self lowSpaceChoices, (msgString ifNil: [''])]
  		ifFalse: [msg := msgString].
  	builder := ToolBuilder default.
  	spec := self buildNotifierWith: builder label: label message: msg.
  	self expandStack.
+ 	^[builder openDebugger: spec] ensure:
+ 		[errorWasInUIProcess := Project current spawnNewProcessIfThisIsUI: interruptedProcess]
- 	builder openDebugger: spec.
- 	errorWasInUIProcess := Project current spawnNewProcessIfThisIsUI: interruptedProcess.
  !



More information about the Squeak-dev mailing list