[squeak-dev] The Trunk: Tools-dtl.299.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Mar 1 01:36:21 UTC 2011


David T. Lewis uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-dtl.299.mcz

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

Name: Tools-dtl.299
Author: dtl
Time: 28 February 2011, 8:36:01.274 pm
UUID: 13232cf5-1034-4124-8b1f-973a69f5c085
Ancestors: Tools-nice.298

Evaluating #halt in MVC can result in an extra debugger scheduled for opening in the previous Morphic project. Clean up debugger open by eliminating #isMorphic test from Debugger class>>openOn:context:label:contents:fullView: and replacing with method dispatch to the appropriate MVC or Morphic method. The MVC method no longer schedules an extra open in someone else's world.

This fixes some scheduling issues with opening an MVC debugger. However, some additional ToolBuilder support is needed for the MVC debugger, and other scheduling issues may remain (not sure if the problems are due to missing buttons etc, or to some other MVC scheduling issue).

=============== Diff against Tools-nice.298 ===============

Item was changed:
  ----- Method: Debugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----
  openOn: process context: context label: title contents: contentsStringOrNil fullView: bool
+ 	"Open a notifier in response to an error, halt, or notify. A notifier view just shows a short
+ 	view of the sender stack and provides a menu that lets the user open a full debugger.
+ 	Dispatch the request to a method appropriate for the active project."
- 	"Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
  
+ 	^ Project current
+ 		dispatchTo: self
+ 		addPrefixAndSend: #OpenOn:context:label:contents:fullView:
+ 		withArguments: { process . context . title . contentsStringOrNil . bool }
- 	| controller errorWasInUIProcess debugger |
- 	Smalltalk isMorphic
- 		ifTrue: [errorWasInUIProcess := Project spawnNewProcessIfThisIsUI: process]
- 		ifFalse: [
- 			controller := ScheduledControllers activeControllerProcess == process
- 				ifTrue: [ScheduledControllers activeController].
- 			[
- 			debugger := self new process: process controller: controller context: context.
- 			bool
- 				ifTrue: [debugger openFullNoSuspendLabel: title]
- 				ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
- 			Preferences logDebuggerStackToFile ifTrue: [
- 				Smalltalk logSqueakError: title inContext: context].
- 			] on: Error do: [:ex |
- 				self primitiveError: 
- 					'Orginal error: ', 
- 					title asString, '.
- 	Debugger error: ', 
- 				([ex description] on: Error do: ['a ', ex class printString]), ':'
- 			]].
- 	WorldState addDeferredUIMessage: [ 
- 		"schedule debugger in deferred UI message to address redraw
- 		problems after opening a debugger e.g. from the testrunner."
- 		[
- 			debugger := self new process: process controller: nil context: context.
- 			bool
- 				ifTrue: [debugger openFullNoSuspendLabel: title]
- 				ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
- 			debugger errorWasInUIProcess: errorWasInUIProcess.
- 			Preferences logDebuggerStackToFile ifTrue: [
- 				Smalltalk logSqueakError: title inContext: context].
- 		] on: Error do: [:ex |
- 			self primitiveError: 
- 				'Orginal error: ', 
- 				title asString, '.
- 	Debugger error: ', 
- 				([ex description] on: Error do: ['a ', ex class printString]), ':'
- 		]
- 	].
- 	process suspend.
  !




More information about the Squeak-dev mailing list