[squeak-dev] Event Theatre in Object Catalog sparks DNU in 6.0-trunk

David T. Lewis lewis at mail.msen.com
Sat Feb 17 22:05:31 UTC 2018


This is an interesting one.

We have EventRecordingSpace class>>newStandalone that is trying to create a new
instance "capable of standing by itself as a usable morph."

This makes an instance with a contentArea that is a Worldlet. Presumabaly that
Wordlet is supposed to be and "independent" thing too. But then we get to
Worldlet(PasteUpMorph)>>displayWorld, in which the Worldlet tries to use its
worldState to display submorphs, but it has no worldState, so boom.

It may be necessary to look at an older image to figure out where this is
going wrong.

Dave

p.s. Tim, thanks for posting this question :-)


On Sat, Feb 17, 2018 at 11:27:53AM -0800, Tm Jhnsn wrote:
> Hi all,
> 
> I am really enjoying the latest versions of Squeak.  
> 
> In trying out 6.0-alpha with trunk updates, I found a DNU when doing normal Morphic tasks.  Sorry if this has already been reported.
> 
> Should be repeatable: 
> 
> - open fresh image
> - make flaps appear (open a new Morphic project, or World menu -> flaps -> show shared tabs)
> - click Widgets 
> - drag out an Object Catalog
> - click Multimedia
> 
> Something is going on within the Event Theatre item's initialization.  
> 
> Seems to be that the "tutorial" Event Theatre Worldlet has a worldState instance variable which is nil, but it is being sent #displayWorld:submorphs: by PasteUpMorph>>#displayWorld.  Interestingly, Worldlet's class comments specifically suggest instances don't have their own worldState.  :D
> 
> Other buttons in the Object Catalog did not result in a DNU for me.
> 
> ...stack follows:
> 
> UndefinedObject(Object)>>doesNotUnderstand: #displayWorld:submorphs:
> Worldlet(PasteUpMorph)>>displayWorld
> [] in Worldlet>>installFlaps
> OrderedCollection>>do:
> Worldlet>>installFlaps
> EventRecordingSpace>>addSuppliesFlap
> EventRecordingSpace>>initialize
> EventRecordingSpace(Morph)>>initializeToStandAlone
> EventRecordingSpace class(Morph class)>>newStandAlone
> PartsBin class>>thumbnailForQuad:color:
> [] in PartsBin>>listDirection:quadList:buttonClass:
> OrderedCollection>>do:
> PartsBin>>listDirection:quadList:buttonClass:
> PartsBin>>listDirection:quadList:
> ObjectsTool>>installQuads:fromButton:
> [] in ObjectsTool>>showCategory:fromButton:
> BlockClosure>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> ObjectsTool>>showCategory:fromButton:
> SimpleButtonMorph>>doButtonAction
> SimpleButtonMorph>>mouseDown:
> SimpleButtonMorph(Morph)>>handleMouseDown:
> MouseButtonEvent>>sentTo:
> SimpleButtonMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> [] in MorphicEventDispatcher>>dispatchMouseDown:with:
> BlockClosure>>ensure:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> SimpleButtonMorph(Morph)>>processEvent:using:
> [] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> Array(SequenceableCollection)>>do:
> AlignmentMorph(Morph)>>submorphsDo:
> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> [] in MorphicEventDispatcher>>dispatchMouseDown:with:
> BlockClosure>>ensure:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> AlignmentMorph(Morph)>>processEvent:using:
> [] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> Array(SequenceableCollection)>>do:
> ObjectsTool(Morph)>>submorphsDo:
> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> [] in MorphicEventDispatcher>>dispatchMouseDown:with:
> BlockClosure>>ensure:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ObjectsTool(Morph)>>processEvent:using:
> [] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> Array(SequenceableCollection)>>do:
> PasteUpMorph(Morph)>>submorphsDo:
> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
> [] in MorphicEventDispatcher>>dispatchMouseDown:with:
> BlockClosure>>ensure:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> PasteUpMorph(Morph)>>processEvent:using:
> [] in PasteUpMorph>>processEvent:using:
> BlockClosure>>ensure:
> PasteUpMorph>>processEvent:using:
> PasteUpMorph(Morph)>>processEvent:
> [] in [] in [] in HandMorph>>sendEvent:focus:clear:
> BlockClosure>>ensure:
> MouseButtonEvent(MorphicEvent)>>becomeActiveDuring:
> [] in [] in HandMorph>>sendEvent:focus:clear:
> BlockClosure>>ensure:
> HandMorph>>becomeActiveDuring:
> [] in HandMorph>>sendEvent:focus:clear:
> BlockClosure>>ensure:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor:
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in MorphicProject>>spawnNewProcess
> [] in BlockClosure>>newProcess
> 
> 
> Thanks,
> Tim
> 
> 


More information about the Squeak-dev mailing list