[squeak-dev] Morphic yellow cross of death

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Sep 17 22:26:50 UTC 2013


Many actions, you know I was not tracking the bug but rather changing the
Compiler, and the bug just broke my flow, so it's difficult to tell exactly.
But I have instrumented :

ChangeList>>listSelectionAt: index put: value
    setSelectionListSelector ifNil:[^false].
    ^model perform: setSelectionListSelector with: index with: value

and the winner is PluggableListMorphOfMany>>mouseMove: maybe due to
unvoluntary drag and drop gesture?
Last line
     self listSelectionAt: index put: dragOnOrOff.
is happily putting a nil where it should not.

There is a protection few lines above:

    dragOnOrOff ifNil:
            ["Was not set at mouse down, which means the mouse must have
gone down in an area where there was no list item"
            dragOnOrOff := (self listSelectionAt: index) not].

Hey but this is an inst var and it's not immutable !
For example, mouseUp: can set it to nil.
Why a mouseUp: could occur before a mouseMove: is fully processed, I can't
tell...
That gets interesting.
Do I have 2 concurrent UI processes ? The ProcessBrowser does not tell so...

Those lines just above did not fail:

    "Set or clear new primary selection (listIndex)"
    dragOnOrOff
        ifTrue: [self changeModelSelection: index]
        ifFalse: [self changeModelSelection: 0].

So dragOnOrOff still was a boolean there.
Could dragOnOrOff mutation be triggered by changeModelSelection: send ?



2013/9/17 Bob Arning <arning315 at comcast.net>

>  What sort of select/deselect/removes had you done to this ChangeList?
>
> Cheer,
> Bob
>
>  On 9/17/13 4:26 PM, Nicolas Cellier wrote:
>
> Ah, sorry, it was not a debugger, it was a ChangeList, and curiously, the
> listSelections effectively contains a non boolean (nil)
>  #(false false false true true nil true false false false false false
> false false false false false)
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130918/1c893720/attachment.htm


More information about the Squeak-dev mailing list