[squeak-dev] The Trunk: Tools-ct.1122.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Jan 30 23:10:09 UTC 2022
Christoph Thiede uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ct.1122.mcz
==================== Summary ====================
Name: Tools-ct.1122
Author: ct
Time: 31 January 2022, 12:09:47.193979 am
UUID: a16ebf6e-8c03-a644-a2d8-1165ac1ef7ff
Ancestors: Tools-mt.1121
Protects the debugger against evaluating a symbol label as a selector on the model.
Formerly, the following would break your project with a recursive error:
[] newProcess debugWithTitle: #myDebugger full: false
Thanks to Marcel for the help!
=============== Diff against Tools-mt.1121 ===============
Item was changed:
----- Method: Debugger>>buildNotifierWith:label:message: (in category 'toolbuilder') -----
buildNotifierWith: builder label: label message: messageString
| windowSpec listSpec textSpec panelSpec quads |
windowSpec := builder pluggableWindowSpec new
model: self;
extent: self initialExtentForNotifier;
+ label: label asString;
- label: label;
children: OrderedCollection new.
panelSpec := builder pluggablePanelSpec new.
panelSpec children: OrderedCollection new.
quads := self preDebugButtonQuads.
(self interruptedContext selector == #doesNotUnderstand:) ifTrue: [
quads := quads copyWith:
{ 'Create'. #createMethod. #magenta. 'create the missing method' }
].
(#(#notYetImplemented #shouldBeImplemented #requirement) includes: self interruptedContext selector) ifTrue: [
quads := quads copyWith:
{ 'Create'. #createImplementingMethod. #magenta. 'implement the marked method' }
].
(self interruptedContext selector == #subclassResponsibility) ifTrue: [
quads := quads copyWith:
{ 'Create'. #createOverridingMethod. #magenta. 'create the missing overriding method' }
].
quads do:[:spec| | buttonSpec |
buttonSpec := builder pluggableButtonSpec new.
buttonSpec model: self.
buttonSpec label: spec first.
buttonSpec action: spec second.
buttonSpec help: spec fourth.
spec size >= 5 ifTrue: [buttonSpec enabled: spec fifth].
panelSpec children add: buttonSpec.
].
panelSpec layout: #horizontal. "buttons"
panelSpec frame: self preDebugButtonQuadFrame.
windowSpec children add: panelSpec.
Preferences eToyFriendly | messageString notNil ifFalse:[
listSpec := builder pluggableListSpec new.
listSpec
model: self;
list: #contextStackList;
getIndex: #contextStackIndex;
setIndex: #debugAt:;
icon: #messageIconAt:;
helpItem: #messageHelpAt:;
frame: self contextStackFrame.
windowSpec children add: listSpec.
] ifTrue:[
message := messageString.
textSpec := builder pluggableTextSpec new.
textSpec
model: self;
getText: #preDebugMessageString;
setText: nil;
selection: nil;
menu: #debugProceedMenu:;
frame: self contextStackFrame.
windowSpec children add: textSpec.
].
^windowSpec!
More information about the Squeak-dev
mailing list
|