[squeak-dev] The Inbox: ToolBuilder-Morphic-ct.286.mcz

mail at jaromir.net mail at jaromir.net
Sat Jan 15 22:55:47 UTC 2022


Hi Christoph,

I did steps 1 and 2 only and tried to step the debugger and was confused what happened next:

- if you do step over twice the debugger gets "MessageNotUnderstood: UndefinedObject>>findContextSuchThat:" which is weird
- however, if you do step through instead of step over, you even get an infinite loop, luckily recoverable via Alt+., which is even weirder...
- and using step into instead of step over ends up with a similar MNU too.

So maybe the pluggable dialog bug in your scenario has even deeper roots, I don't know... I don't understand why the MNU error above; I wouldn't expect that... it sounds like the debugger is searching for a context on the wrong stack...

best,
~~~
^[^    Jaromir

Sent from Squeak Inbox Talk

On 2022-01-15T21:19:52+00:00, commits at source.squeak.org wrote:

> A new version of ToolBuilder-Morphic was added to project The Inbox:
> http://source.squeak.org/inbox/ToolBuilder-Morphic-ct.286.mcz
> 
> ==================== Summary ====================
> 
> Name: ToolBuilder-Morphic-ct.286
> Author: ct
> Time: 15 January 2022, 10:19:51.009373 pm
> UUID: 3c0068e7-ce8e-5f45-8782-34c92bc6ab5f
> Ancestors: ToolBuilder-Morphic-ct.285
> 
> Fixes a nil MNU when interrupting a pluggable dialog.
> 
> Steps to reproduce (before):
> 	1. Do it:
> 		Project uiManager chooseFrom: ((1 to: 10) collect: #asWords).
> 	2. Interrupt/Debug invocation
> 	3. Close/cancel the dialog
> 	4. Abandon the debugger
> 
> During the unwinding logic, the dialog window would attempt to close itself a second time, neglecting the fact that the model had already been released.
> 
> Inbox because only 90% sure that this is the right fix. :-)
> 
> =============== Diff against ToolBuilder-Morphic-ct.285 ===============
> 
> Item was changed:
>   ----- Method: PluggableDialogWindow>>delete (in category 'submorphs - add/remove') -----
>   delete
>   
> + 	self model ifNil: [^ super delete].
>   	self model okToClose ifFalse: [^ self].
>   	
>   	self closeDialogSelector ifNotNil: [:sel | self model perform: sel].
>   	
>   	self model
>   		windowIsClosing;
>   		release.
>   	self model: nil.
>   	
>   	super delete.!
> 
> 


More information about the Squeak-dev mailing list