Regression
windows-32 / Tests-windows-32 / Windows32.Glamour.Tests.Morphic.GLMUpdateMorphicTest.testAnnouncerUnregistration (from Glamour-Tests-Morphic)
Error Message
receiver of "width" is nil
Stacktrace
UndefinedObject(Object)>>doesNotUnderstand: #width UndefinedObject>>doesNotUnderstand: #width GLMHorizontalLinearLayout(GLMLinearLayout)>>layoutFloatingRight:in: GLMHorizontalLinearLayout(GLMLinearLayout)>>layoutFloating:in: [ :origin :each | | result | result := origin + ((self isFloating: each) ifFalse: [ aBlock cull: origin cull: each ] ifTrue: [ self layoutFloating: each in: aRectangle ]). "applying aligning: #none, #left, #center, #right" self align: each in: aBrick anchorPoint: origin inContext: nil. each onLayouted. result ] in GLMHorizontalLinearLayout(GLMLinearLayout)>>layout:in:inject:into: [ :each | nextValue := binaryBlock value: nextValue value: each ] in OrderedCollection(Collection)>>inject:into: OrderedCollection>>do: OrderedCollection(Collection)>>inject:into: GLMHorizontalLinearLayout(GLMLinearLayout)>>layout:in:inject:into: GLMHorizontalLinearLayout>>layout:in: GLMLabelBrick(GLMBrick)>>invalidateLayout GLMBrickWrapper>>invalidateLayout GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutSubbricks: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutAround:inContext: [ :each | self layoutAround: each inContext: aBrick ] in GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: OrderedCollection>>do: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: GLMBrickLayoutParentState>>layout:on: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutAround:inContext: [ :each | self layoutAround: each inContext: aBrick ] in GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: OrderedCollection>>do: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: GLMBrickLayoutParentState>>layout:on: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutAround:inContext: [ :each | self layoutAround: each inContext: aBrick ] in GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: OrderedCollection>>do: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: GLMBrickLayoutParentState>>layout:on: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutAround:inContext: [ :each | self layoutAround: each inContext: aBrick ] in GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: OrderedCollection>>do: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutChildrenOf: GLMBrickLayoutMyselfState>>layout:on: GLMBrickHeightTraverser(GLMBrickLayoutTraverser)>>layoutAround:inContext: GLMBrickLayouter>>layout: GLMBrickLayouter>>layoutIn: GLMBrick>>doLayout GLMBrick>>doLayoutForce GLMTabSelectorBrick(GLMFoundationBrick)>>extent: GLMTabSelectorBrick(Morph)>>bounds: GLMTabSelectorBrick(Morph)>>layoutInBounds: TableLayout>>layoutLeftToRight:in: TableLayout>>layout:in: PanelMorph(Morph)>>doLayoutIn: [ self doLayoutIn: self layoutBounds ] in PanelMorph(Morph)>>computeFullBounds BlockClosure>>on:do: PanelMorph(Morph)>>computeFullBounds PanelMorph(Morph)>>fullBounds [ :m | | subBox | m visible ifTrue: [ subBox := m fullBounds. box ifNil: [ box := subBox copy ] ifNotNil: [ box := box quickMerge: subBox ] ] ] in LazyTabGroupMorph(Morph)>>submorphBounds Array(SequenceableCollection)>>do: LazyTabGroupMorph(Morph)>>submorphBounds LazyTabGroupMorph(Morph)>>privateFullBounds LazyTabGroupMorph(Morph)>>changed LazyTabGroupMorph(Morph)>>extent: LazyTabGroupMorph(Morph)>>bounds: LazyTabGroupMorph(Morph)>>layoutInBounds: TableLayout>>layoutTopToBottom:in: TableLayout>>layout:in: GLMPanelMorph(Morph)>>doLayoutIn: [ self doLayoutIn: self layoutBounds ] in GLMPanelMorph(Morph)>>computeFullBounds BlockClosure>>on:do: GLMPanelMorph(Morph)>>computeFullBounds GLMPanelMorph(Morph)>>fullBounds GLMPanelMorph(Morph)>>privateInvalidateMorph: GLMPanelMorph(Morph)>>privateAddMorph:atIndex: GLMPanelMorph(Morph)>>addMorphFront: GLMPanelMorph(Morph)>>addMorph: GLMPanelMorph(Morph)>>addMorph:fullFrame: GLMMorphicPaneRenderer>>renderContainerFor: GLMMorphicPaneRenderer>>actOnMatchingPresentationChanged: MessageSend>>value: MessageSend>>cull: MessageSend>>cull:cull: [ action cull: anAnnouncement cull: announcer ] in AnnouncementSubscription>>deliver: BlockClosure>>on:do: BlockClosure>>on:fork: AnnouncementSubscription>>deliver: [ "Ensure delivery to remaining announcements" subscription deliver: anAnnouncement ] in SubscriptionRegistry>>deliver:to:startingAt: BlockClosure>>ifCurtailed: SubscriptionRegistry>>deliver:to:startingAt: SubscriptionRegistry>>deliver:to: SubscriptionRegistry>>deliver: GLMPane(Announcer)>>announce: GLMPane(GLMAnnouncer)>>announce: GLMPane(GLMLoggedObject)>>announce: GLMPane>>notingPresentationChangeDo: GLMPanePort(GLMBoundPort)>>notingPresentationChangeDo: GLMTransmission>>transmitIn: [ :each | each transmitIn: aPortEvent transmissionContext copy ] in GLMTabulator(GLMBrowser)>>outerPortEvent: OrderedCollection>>do: GLMTabulator(GLMBrowser)>>outerPortEvent: [ :each | each outerPortEvent: aPortEvent ] in GLMCompositePresentation>>outerPortEvent: OrderedCollection>>do: GLMCompositePresentation>>do: GLMCompositePresentation>>outerPortEvent: GLMPane>>portEvent: [ self silentValue: anObject. self pane portEvent: (GLMPortEvent on: self previouslyValued: oldValue in: aTransmissionContext) ] in GLMPanePort>>changeValueTo:in: GLMPane>>notingPresentationChangeDo: GLMPanePort>>changeValueTo:in: GLMPanePort>>value:in: GLMPanePort(GLMPort)>>value: GLMTabulator(GLMPresentation)>>entity: GLMUpdateMorphicTest>>testAnnouncerUnregistration GLMUpdateMorphicTest(TestCase)>>performTest