Pharo-dev
By message
pharo-dev@lists.pharo.org
By month
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
July 2015
- 311 discussions
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:47.447607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
Receiver: nil
Arguments and temporary variables:
aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
resumeValue: nil
Receiver's instance variables:
nil
FTTableContainerMorph>>rowIndexContainingPoint:
Receiver: a FTTableContainerMorph(901775360)
Arguments and temporary variables:
aPoint: (527@279)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a FTPluggableIconListMorphAdaptor(595329024)
submorphs: #()
fullBounds: (473.0(a)247.0) corner: (681.0(a)504.0)
color: Color transparent
extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
needsRefreshExposedRows: true
headerRow: nil
exposedRows: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
event: BlMouseDownEvent((527@279) red 159215 0)
rowIndex: nil
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
MouseClickState>>click
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
firstClickUp: BlMouseUpEvent((527@279) 159295 0)
firstClickTime: 159215
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:from:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((527@279) 159295 0)
aHand: a BlHandMorph
localEvt: BlMouseUpEvent((527@279) 159295 0)
timedOut: false
isDrag: false
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
firstClickUp: BlMouseUpEvent((527@279) 159295 0)
firstClickTime: 159215
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((527@279) 159295 0)
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
firstClickUp: BlMouseUpEvent((527@279) 159295 0)
firstClickTime: 159215
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseUpEvent((527@279) 159295 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: a MouseClickState[#firstClickUp]
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseUpEvent((527@279) 159295 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseUpEvent((527@279) 159295 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 159295 527 279 0 0 0 1)
evt: BlMouseUpEvent((527@279) 159295 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 159295 527 279 0 0 0 1)
lastKeyScanCode: 30
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:47.803607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
Receiver: nil
Arguments and temporary variables:
aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
resumeValue: nil
Receiver's instance variables:
nil
FTTableContainerMorph>>rowIndexContainingPoint:
Receiver: a FTTableContainerMorph(901775360)
Arguments and temporary variables:
aPoint: (527@279)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a FTPluggableIconListMorphAdaptor(595329024)
submorphs: #()
fullBounds: (473.0(a)247.0) corner: (681.0(a)504.0)
color: Color transparent
extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
needsRefreshExposedRows: true
headerRow: nil
exposedRows: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>doubleClick:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
event: BlMouseDownEvent((527@279) red 159215 0)
rowIndex: nil
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
MouseClickState>>doubleClick
Receiver: a MouseClickState[#secondClickDown]
Arguments and temporary variables:
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #secondClickDown
firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
firstClickUp: BlMouseUpEvent((527@279) 159295 0)
firstClickTime: 159215
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:from:
Receiver: a MouseClickState[#secondClickDown]
Arguments and temporary variables:
evt: BlMouseUpEvent((527@279) 159655 0)
aHand: a BlHandMorph
localEvt: BlMouseUpEvent((527@279) 159655 0)
timedOut: false
isDrag: false
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #secondClickDown
firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
firstClickUp: BlMouseUpEvent((527@279) 159295 0)
firstClickTime: 159215
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:
Receiver: a MouseClickState[#secondClickDown]
Arguments and temporary variables:
evt: BlMouseUpEvent((527@279) 159655 0)
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #secondClickDown
firstClickDown: BlMouseDownEvent((527@279) red 159215 0)
firstClickUp: BlMouseUpEvent((527@279) 159295 0)
firstClickTime: 159215
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseUpEvent((527@279) 159655 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: nil
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseUpEvent((527@279) 159655 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseUpEvent((527@279) 159655 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 159655 527 279 0 0 0 1)
evt: BlMouseUpEvent((527@279) 159655 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 159655 527 279 0 0 0 1)
lastKeyScanCode: 30
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>doubleClick:
MouseClickState>>doubleClick
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:57.915607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
Receiver: nil
Arguments and temporary variables:
aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
resumeValue: nil
Receiver's instance variables:
nil
FTTableContainerMorph>>rowIndexContainingPoint:
Receiver: a FTTableContainerMorph(901775360)
Arguments and temporary variables:
aPoint: (312@276)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a FTPluggableIconListMorphAdaptor(595329024)
submorphs: #()
fullBounds: (473.0(a)247.0) corner: (681.0(a)504.0)
color: Color transparent
extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
needsRefreshExposedRows: true
headerRow: nil
exposedRows: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
event: BlMouseDownEvent((312@276) red 169647 0)
rowIndex: nil
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
MouseClickState>>click
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((312@276) red 169647 0)
firstClickUp: BlMouseUpEvent((312@276) 169775 0)
firstClickTime: 169647
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:from:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((312@276) 169775 0)
aHand: a BlHandMorph
localEvt: BlMouseUpEvent((312@276) 169775 0)
timedOut: false
isDrag: false
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((312@276) red 169647 0)
firstClickUp: BlMouseUpEvent((312@276) 169775 0)
firstClickTime: 169647
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((312@276) 169775 0)
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((312@276) red 169647 0)
firstClickUp: BlMouseUpEvent((312@276) 169775 0)
firstClickTime: 169647
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseUpEvent((312@276) 169775 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: a MouseClickState[#firstClickUp]
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseUpEvent((312@276) 169775 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseUpEvent((312@276) 169775 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 169775 312 276 0 0 0 1)
evt: BlMouseUpEvent((312@276) 169775 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 169775 312 276 0 0 0 1)
lastKeyScanCode: 30
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:28:59.561608 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
Receiver: nil
Arguments and temporary variables:
aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
resumeValue: nil
Receiver's instance variables:
nil
FTTableContainerMorph>>rowIndexContainingPoint:
Receiver: a FTTableContainerMorph(901775360)
Arguments and temporary variables:
aPoint: (329@293)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a FTPluggableIconListMorphAdaptor(595329024)
submorphs: #()
fullBounds: (473.0(a)247.0) corner: (681.0(a)504.0)
color: Color transparent
extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
needsRefreshExposedRows: true
headerRow: nil
exposedRows: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
event: BlMouseDownEvent((329@293) red 171311 0)
rowIndex: nil
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
MouseClickState>>click
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((329@293) red 171311 0)
firstClickUp: BlMouseUpEvent((329@293) 171423 0)
firstClickTime: 171311
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:from:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((329@293) 171423 0)
aHand: a BlHandMorph
localEvt: BlMouseUpEvent((329@293) 171423 0)
timedOut: false
isDrag: false
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((329@293) red 171311 0)
firstClickUp: BlMouseUpEvent((329@293) 171423 0)
firstClickTime: 171311
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
MouseClickState>>handleEvent:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((329@293) 171423 0)
Receiver's instance variables:
clickClient: a FTPluggableIconListMorphAdaptor(595329024)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((329@293) red 171311 0)
firstClickUp: BlMouseUpEvent((329@293) 171423 0)
firstClickTime: 171311
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: #doubleClickTimeout:
dragSelector: #startDrag:
dragThreshold: 3
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseUpEvent((329@293) 171423 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: a MouseClickState[#firstClickUp]
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseUpEvent((329@293) 171423 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseUpEvent((329@293) 171423 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 171423 329 293 0 0 0 1)
evt: BlMouseUpEvent((329@293) 171423 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 171423 329 293 0 0 0 1)
lastKeyScanCode: 30
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:29:00.919615 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
Receiver: nil
Arguments and temporary variables:
aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
resumeValue: nil
Receiver's instance variables:
nil
FTTableContainerMorph>>rowIndexContainingPoint:
Receiver: a FTTableContainerMorph(901775360)
Arguments and temporary variables:
aPoint: (31@270)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a FTPluggableIconListMorphAdaptor(595329024)
submorphs: #()
fullBounds: (473.0(a)247.0) corner: (681.0(a)504.0)
color: Color transparent
extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
needsRefreshExposedRows: true
headerRow: nil
exposedRows: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
event: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
BlMouseMoveEvent>>sentTo:
Receiver: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Arguments and temporary variables:
anObject: a FTPluggableIconListMorphAdaptor(595329024)
Receiver's instance variables:
timeStamp: 172767
source: a BlHandMorph
windowIndex: 0
handler: nil
wasHandled: true
buttons: 4
position: (31@270)
startPoint: (23.0(a)271.0)
trail: {(26@270). (31@270)}
FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
BlSpaceEventListener>>sendFocusEvent:to:clear:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
aBlock: [ self mouseFocus: nil ]
w: a BlWorldMorph
transformedEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>sendEvent:focus:clear:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
aBlock: [ self mouseFocus: nil ]
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>sendEventToMouseFocus:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
UndefinedObject>>ifNotNil:ifNil:
Receiver: nil
Arguments and temporary variables:
ifNotNilBlock: [ :d | aBlockWithDraggedAsArg cull: d ]
nilBlock: [ self sendEventToMouseFocus: anEvent ]
Receiver's instance variables:
nil
BlHandMorph>>withDraggedDo:ifNone:
Receiver: a BlHandMorph
Arguments and temporary variables:
aBlockWithDraggedAsArg: [ ]
noneBlock: [ self sendEventToMouseFocus: anEvent ]
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: a WeakArray(a BlHandForegroundMorph)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: a WeakArray(nil)
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlHandView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: 100
style: a BlUINullStyle
targetOffset: (-450.0(a)24.0)
dragged: nil
defaultView: a BlHandView
BlSpaceEventListener>>mouseMove:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
Receiver: a BlMorphicCompatibilitySpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
next: a BlSpaceEventListener
BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlMouseMoveEvent>>sentToNext:
Receiver: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Arguments and temporary variables:
anObject: a BlHaloGlobalEventListener
Receiver's instance variables:
timeStamp: 172767
source: a BlHandMorph
windowIndex: 0
handler: nil
wasHandled: false
buttons: 4
position: (31@270)
startPoint: (23.0(a)271.0)
trail: {(26@270). (31@270)}
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
listener: a BlHaloGlobalEventListener
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlockClosure>>cull:
Receiver: [ :listener | anEvent sentToNext: listener ]
Arguments and temporary variables:
anArg: a BlHaloGlobalEventListener
Receiver's instance variables:
outerContext: BlSpaceEventListener>>handleEvent:
startpc: 27
numArgs: 1
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
aBlock: [ :listener | anEvent sentToNext: listener ]
el: a BlHaloGlobalEventListener
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlockClosure>>cull:
Receiver: [ :el | aBlock cull: el ]
Arguments and temporary variables:
anArg: a BlHaloGlobalEventListener
Receiver's instance variables:
outerContext: BlSpaceEventListener>>privateReinjectEvent:
startpc: 32
numArgs: 1
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
aBlock: [ :el | aBlock cull: el ]
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlSpaceEventListener>>privateReinjectEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
aBlock: [ :listener | anEvent sentToNext: listener ]
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>handleEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a FTPluggableIconListMorphAdaptor(595329024)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
Receiver: a BlMorphicCompatibilitySpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
next: a BlSpaceEventListener
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlMorphicDoubleClickOrDragEventListener(BlEventListener)>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: nil
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: nil
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 172767 26 270 4 0 0 1)
evt: BlMouseMoveEvent((23.0(a)271.0) (31@270) red 172767 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 172767 26 270 4 0 0 1)
lastKeyScanCode: 30
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
BlMouseMoveEvent>>sentTo:
FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
BlSpaceEventListener>>sendFocusEvent:to:clear:
BlSpaceEventListener>>sendEvent:focus:clear:
BlSpaceEventListener>>sendEventToMouseFocus:
[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
UndefinedObject>>ifNotNil:ifNil:
BlHandMorph>>withDraggedDo:ifNone:
BlSpaceEventListener>>mouseMove:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
BlMouseMoveEvent>>sentToNext:
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
BlockClosure>>cull:
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
BlockClosure>>cull:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
BlSpaceEventListener>>privateReinjectEvent:
BlSpaceEventListener>>handleEvent:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
BlMorphicDoubleClickOrDragEventListener(BlEventListener)>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
14 July 2015 1:29:00.979607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
Receiver: nil
Arguments and temporary variables:
aMessage: keysAndValuesDo: [ :rowIndex :row |
(row bounds containsPoint: aPoin...etc...
exception: MessageNotUnderstood: receiver of "keysAndValuesDo:" is nil
resumeValue: nil
Receiver's instance variables:
nil
FTTableContainerMorph>>rowIndexContainingPoint:
Receiver: a FTTableContainerMorph(901775360)
Arguments and temporary variables:
aPoint: (53@274)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a FTPluggableIconListMorphAdaptor(595329024)
submorphs: #()
fullBounds: (473.0(a)247.0) corner: (681.0(a)504.0)
color: Color transparent
extension: a MorphExtension (931397632) [eventHandler = a
MorphicEventHandler] ...etc...
needsRefreshExposedRows: true
headerRow: nil
exposedRows: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
event: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
BlMouseMoveEvent>>sentTo:
Receiver: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Arguments and temporary variables:
anObject: a FTPluggableIconListMorphAdaptor(595329024)
Receiver's instance variables:
timeStamp: 172793
source: a BlHandMorph
windowIndex: 0
handler: nil
wasHandled: true
buttons: 4
position: (53@274)
startPoint: (31.0(a)270.0)
trail: {(37@270). (43@270). (53@274)}
FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
Receiver: a FTPluggableIconListMorphAdaptor(595329024)
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
bounds: (473.0(a)247.0) corner: (681.0(a)504.0)
owner: a PanelMorph(547618816)
submorphs: an Array(a ScrollBar(648544256) a
FTTableContainerMorph(901775360))
fullBounds: (473@247) corner: (681@504)
color: Color white
extension: a MorphExtension (634912768) [other: (announcer -> an
Announcer) (k...etc...
container: a FTTableContainerMorph(901775360)
verticalScrollBar: a ScrollBar(648544256)
backgroundColor: nil
selectionColor: nil
showIndex: 0
dataSource: a FTPluggableIconListMorphAdaptorDataSource
intercellSpacing: nil
rowHeight: nil
selectedRowIndexes: #()
highlightedRowIndexes: #()
selectionStrategy: a FTMultipleSelection
columns: an Array(a FTColumn)
secondarySelectionColor: nil
headerColor: nil
showHeader: nil
showColumnHeaders: false
search: a FTSearchFunction
allowsDeselection: true
setSelectionListSelector: #classSelectionAt:put:
getSelectionListSelector: #classSelectionAt:
setIndexSelector: #selectedClassIndex:
getIndexSelector: #selectedClassIndex
keystrokeSelector: #keyPressedOnList:shifted:
resetListSelector: #resetClassSelection
doubleClickSelector: #doubleClick
keystrokeActionSelector: nil
BlSpaceEventListener>>sendFocusEvent:to:clear:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
aBlock: [ self mouseFocus: nil ]
w: a BlWorldMorph
transformedEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>sendEvent:focus:clear:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
focusHolder: a FTPluggableIconListMorphAdaptor(595329024)
aBlock: [ self mouseFocus: nil ]
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>sendEventToMouseFocus:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
UndefinedObject>>ifNotNil:ifNil:
Receiver: nil
Arguments and temporary variables:
ifNotNilBlock: [ :d | aBlockWithDraggedAsArg cull: d ]
nilBlock: [ self sendEventToMouseFocus: anEvent ]
Receiver's instance variables:
nil
BlHandMorph>>withDraggedDo:ifNone:
Receiver: a BlHandMorph
Arguments and temporary variables:
aBlockWithDraggedAsArg: [ ]
noneBlock: [ self sendEventToMouseFocus: anEvent ]
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: a WeakArray(a BlHandForegroundMorph)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: a WeakArray(nil)
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlHandView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: 100
style: a BlUINullStyle
targetOffset: (-450.0(a)24.0)
dragged: nil
defaultView: a BlHandView
BlSpaceEventListener>>mouseMove:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
Receiver: a BlMorphicCompatibilitySpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
next: a BlSpaceEventListener
BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlMouseMoveEvent>>sentToNext:
Receiver: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Arguments and temporary variables:
anObject: a BlHaloGlobalEventListener
Receiver's instance variables:
timeStamp: 172793
source: a BlHandMorph
windowIndex: 0
handler: nil
wasHandled: false
buttons: 4
position: (53@274)
startPoint: (31.0(a)270.0)
trail: {(37@270). (43@270). (53@274)}
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
listener: a BlHaloGlobalEventListener
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlockClosure>>cull:
Receiver: [ :listener | anEvent sentToNext: listener ]
Arguments and temporary variables:
anArg: a BlHaloGlobalEventListener
Receiver's instance variables:
outerContext: BlSpaceEventListener>>handleEvent:
startpc: 27
numArgs: 1
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
aBlock: [ :listener | anEvent sentToNext: listener ]
el: a BlHaloGlobalEventListener
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlockClosure>>cull:
Receiver: [ :el | aBlock cull: el ]
Arguments and temporary variables:
anArg: a BlHaloGlobalEventListener
Receiver's instance variables:
outerContext: BlSpaceEventListener>>privateReinjectEvent:
startpc: 32
numArgs: 1
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
aBlock: [ :el | aBlock cull: el ]
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlSpaceEventListener>>privateReinjectEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
aBlock: [ :listener | anEvent sentToNext: listener ]
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>handleEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a PluggableButtonMorph(148373504)
mouseFocus: a FTPluggableIconListMorphAdaptor(595329024)
lastMouseEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
Receiver: a BlMorphicCompatibilitySpaceEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
next: a BlSpaceEventListener
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 172793 37 270 4 0 0 1)
evt: BlMouseMoveEvent((31.0(a)270.0) (53@274) red 172793 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 172793 37 270 4 0 0 1)
lastKeyScanCode: 30
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #keysAndValuesDo:
FTTableContainerMorph>>rowIndexContainingPoint:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>mouseMove:
FTPluggableIconListMorphAdaptor(FTTableMorph)>>handleMouseMove:
BlMouseMoveEvent>>sentTo:
FTPluggableIconListMorphAdaptor(Morph)>>handleEvent:
FTPluggableIconListMorphAdaptor(Morph)>>handleFocusEvent:
BlSpaceEventListener>>sendFocusEvent:to:clear:
BlSpaceEventListener>>sendEvent:focus:clear:
BlSpaceEventListener>>sendEventToMouseFocus:
[ self sendEventToMouseFocus: anEvent ] in BlSpaceEventListener>>mouseMove:
UndefinedObject>>ifNotNil:ifNil:
BlHandMorph>>withDraggedDo:ifNone:
BlSpaceEventListener>>mouseMove:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>mouseMove:
BlHaloGlobalEventListener(BlEventListener)>>mouseMove:
BlMouseMoveEvent>>sentToNext:
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
BlockClosure>>cull:
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
BlockClosure>>cull:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
BlSpaceEventListener>>privateReinjectEvent:
BlSpaceEventListener>>handleEvent:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlRectangleView>>cornerRadius:
14 July 2015 1:46:40.985607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlRectangleView(Object)>>doesNotUnderstand: #cornerRadius:
Receiver: a BlRectangleView
Arguments and temporary variables:
aMessage: cornerRadius: 5
exception: MessageNotUnderstood: BlRectangleView>>cornerRadius:
resumeValue: nil
Receiver's instance variables:
transform: a BlAthensIdentityTransform
ownerReference: a WeakArray(a BlWellPanel)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
extent: (50@50)
fillStyle: Color white
borderStyle: a BlNullRectanglerBorder
layoutStrategy: a BlDummyLayoutStrategy
plainSurface: true
clipping: false
subviews: #()
[ :v |
v color: self defaultColor.
v cornerRadius: 5.
v
borderStyle:
(BlSolidRectangleBorder new
color: self defaultBorderColor;
width: self defaultBorderWidth).
v addView: (BlStringView string: self title) ] in BlWellPanel>>initialize
Receiver: a BlWellPanel
Arguments and temporary variables:
v: a BlRectangleView
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
BlWellPanel(BlMorph)>>withRectangleViewDo:
Receiver: a BlWellPanel
Arguments and temporary variables:
aBlock: [ :v |
v color: self defaultColor.
v cornerRadius: 5.
v
borderStyle:
...etc...
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
BlWellPanel>>initialize
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
BlWellPanel class(Behavior)>>new
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#defaultBorderColor->BlWellPanel>>#defaultBorder...etc...
format: 170
layout: a FixedLayout
instanceVariables: #(#title)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel new openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: nil
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: nil
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@31)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(677642240))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
BlRectangleView(Object)>>doesNotUnderstand: #cornerRadius:
[ :v |
v color: self defaultColor.
v cornerRadius: 5.
v
borderStyle:
(BlSolidRectangleBorder new
color: self defaultBorderColor;
width: self defaultBorderWidth).
v addView: (BlStringView string: self title) ] in BlWellPanel>>initialize
BlWellPanel(BlMorph)>>withRectangleViewDo:
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: Array>>self
14 July 2015 2:08:25.071608 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
Array(Object)>>doesNotUnderstand: #self
Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
Arguments and temporary variables:
aMessage: self
exception: MessageNotUnderstood: Array>>self
resumeValue: nil
Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...
BlWellPanel>>defaultValues:
Receiver: a BlWellPanel
Arguments and temporary variables:
anObject: {Color lightYellow. Color lightGreen. Color lightBlue.
Color white. C...etc...
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: nil
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(503578624))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
Array(Object)>>doesNotUnderstand: #self
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: Rectangle>>asPoint
14 July 2015 2:08:35.82361 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
Rectangle(Object)>>doesNotUnderstand: #asPoint
Receiver: (0@0) corner: (30@30)
Arguments and temporary variables:
aMessage: asPoint
exception: MessageNotUnderstood: Rectangle>>asPoint
resumeValue: nil
Receiver's instance variables:
origin: (0@0)
corner: (30@30)
BlMinimalMorphView(BlView)>>basicExtent:
Receiver: a BlMinimalMorphView
Arguments and temporary variables:
aPoint: (0@0) corner: (30@30)
previousExtent: nil
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: a WeakArray(a BlDragWell)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
extent: (50@50)
BlMinimalMorphView(BlProtoView)>>privateExtent:
Receiver: a BlMinimalMorphView
Arguments and temporary variables:
anExtent: (0@0) corner: (30@30)
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: a WeakArray(a BlDragWell)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
extent: (50@50)
[ aView privateExtent: anExtent ] in BlExtentRestriction>>extent:of:
Receiver: a BlExtentRestriction
Arguments and temporary variables:
anExtent: (0@0) corner: (30@30)
aView: a BlMinimalMorphView
Receiver's instance variables:
minimalWidth: 0
minimalHeight: 0
maximalWidth: 1073741823
maximalHeight: 1073741823
BlMinimalMorphView(BlProtoView)>>changedAround:
Receiver: a BlMinimalMorphView
Arguments and temporary variables:
aBlock: [ aView privateExtent: anExtent ]
previousTransform: an AthensAffineTransform
previousBnds: (-1@ -1) corner: (51@51)
newTransform: nil
newBnds: nil
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: a WeakArray(a BlDragWell)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
extent: (50@50)
BlExtentRestriction>>extent:of:
Receiver: a BlExtentRestriction
Arguments and temporary variables:
anExtent: (0@0) corner: (30@30)
aView: a BlMinimalMorphView
Receiver's instance variables:
minimalWidth: 0
minimalHeight: 0
maximalWidth: 1073741823
maximalHeight: 1073741823
BlMinimalMorphView(BlProtoView)>>extent:
Receiver: a BlMinimalMorphView
Arguments and temporary variables:
anExtent: (0@0) corner: (30@30)
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: a WeakArray(a BlDragWell)
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
extent: (50@50)
BlDragWell(BlMorph)>>defaultView
Receiver: a BlDragWell
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: nil
announcer: nil
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
panel: nil
BlDragWell(BlMorph)>>initialize
Receiver: a BlDragWell
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: nil
announcer: nil
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
panel: nil
BlDragWell>>initialize
Receiver: a BlDragWell
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: nil
announcer: nil
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
panel: nil
BlDragWell class(Behavior)>>new
Receiver: BlDragWell
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
format: 170
layout: a FixedLayout
instanceVariables: #(#panel)
organization: a ClassOrganization
subclasses: nil
name: #BlDragWell
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
BlDragWell class>>on:
Receiver: BlDragWell
Arguments and temporary variables:
aColor: Color lightYellow
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
format: 170
layout: a FixedLayout
instanceVariables: #(#panel)
organization: a ClassOrganization
subclasses: nil
name: #BlDragWell
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
value: Color lightYellow
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
Array(SequenceableCollection)>>do:
Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
Arguments and temporary variables:
aBlock: [ :value |
self
addMorphBack:
((self wellClass on: value)
panel:...etc...
index: 1
Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...
BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel>>defaultValues:
Receiver: a BlWellPanel
Arguments and temporary variables:
anObject: {Color lightYellow. Color lightGreen. Color lightBlue.
Color white. C...etc...
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: (0@0) corner: (580@69)
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(503578624))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
Rectangle(Object)>>doesNotUnderstand: #asPoint
BlMinimalMorphView(BlView)>>basicExtent:
BlMinimalMorphView(BlProtoView)>>privateExtent:
[ aView privateExtent: anExtent ] in BlExtentRestriction>>extent:of:
BlMinimalMorphView(BlProtoView)>>changedAround:
BlExtentRestriction>>extent:of:
BlMinimalMorphView(BlProtoView)>>extent:
BlDragWell(BlMorph)>>defaultView
BlDragWell(BlMorph)>>initialize
BlDragWell>>initialize
BlDragWell class(Behavior)>>new
BlDragWell class>>on:
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlDragWell>>layoutPropertiesFirstAxisDo:
14 July 2015 2:57:40.453607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlDragWell(Object)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
Receiver: a BlDragWell
Arguments and temporary variables:
aMessage: layoutPropertiesFirstAxisDo: [ :a | a beRigid ]
exception: MessageNotUnderstood: BlDragWell>>layoutPropertiesFirstAxisDo:
resumeValue: nil
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
panel: nil
BlDragWell(BlMorph)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
Receiver: a BlDragWell
Arguments and temporary variables:
aMessage: layoutPropertiesFirstAxisDo: [ :a | a beRigid ]
cat: nil
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
panel: nil
BlDragWell>>initialize
Receiver: a BlDragWell
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
panel: nil
BlDragWell class(Behavior)>>new
Receiver: BlDragWell
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
format: 170
layout: a FixedLayout
instanceVariables: #(#panel)
organization: a ClassOrganization
subclasses: nil
name: #BlDragWell
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
BlDragWell class>>on:
Receiver: BlDragWell
Arguments and temporary variables:
aColor: Color lightYellow
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#defaultBorderColor->BlDragWell>>#defaultBorderC...etc...
format: 170
layout: a FixedLayout
instanceVariables: #(#panel)
organization: a ClassOrganization
subclasses: nil
name: #BlDragWell
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
value: Color lightYellow
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlBoxLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
Array(SequenceableCollection)>>do:
Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
Arguments and temporary variables:
aBlock: [ :value |
self
addMorphBack:
((self wellClass on: value)
panel:...etc...
index: 1
Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...
BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlBoxLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel>>defaultValues:
Receiver: a BlWellPanel
Arguments and temporary variables:
anObject: {Color lightYellow. Color lightGreen. Color lightBlue.
Color white. C...etc...
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlBoxLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(222298112))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
BlDragWell(Object)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
BlDragWell(BlMorph)>>doesNotUnderstand: #layoutPropertiesFirstAxisDo:
BlDragWell>>initialize
BlDragWell class(Behavior)>>new
BlDragWell class>>on:
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlStackLayoutStrategy>>beLeftToRight
14 July 2015 3:10:23.759608 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlStackLayoutStrategy(Object)>>doesNotUnderstand: #beLeftToRight
Receiver: a BlStackLayoutStrategy
Arguments and temporary variables:
aMessage: beLeftToRight
exception: MessageNotUnderstood: BlStackLayoutStrategy>>beLeftToRight
resumeValue: nil
Receiver's instance variables:
layouting: false
plugged: true
BlWellPanel>>initialize
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: nil
BlWellPanel class(Behavior)>>new
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(459800576))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
BlStackLayoutStrategy(Object)>>doesNotUnderstand: #beLeftToRight
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlStackLayoutStrategy>>padding:
14 July 2015 3:10:51.877611 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlStackLayoutStrategy(Object)>>doesNotUnderstand: #padding:
Receiver: a BlStackLayoutStrategy
Arguments and temporary variables:
aMessage: padding: 2
exception: MessageNotUnderstood: BlStackLayoutStrategy>>padding:
resumeValue: nil
Receiver's instance variables:
layouting: false
plugged: true
BlWellPanel>>initialize
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: nil
BlWellPanel class(Behavior)>>new
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(456654848))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
BlStackLayoutStrategy(Object)>>doesNotUnderstand: #padding:
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: receiver of "isRightToLeft" is nil
14 July 2015 3:14:57.567607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
UndefinedObject(Object)>>doesNotUnderstand: #isRightToLeft
Receiver: nil
Arguments and temporary variables:
aMessage: isRightToLeft
exception: MessageNotUnderstood: receiver of "isRightToLeft" is nil
resumeValue: nil
Receiver's instance variables:
nil
BlRowLayout(BlBoxLayout)>>initializeCells
Receiver: a BlRowLayout
Arguments and temporary variables:
b: [ :c | self addCell: (self newCellFor: c) ]
Receiver's instance variables:
strategy: nil
targetReference: nil
position: nil
extent: nil
firstCell: nil
lastCell: nil
BlRowLayout>>initializeCells
Receiver: a BlRowLayout
Arguments and temporary variables:
Receiver's instance variables:
strategy: nil
targetReference: nil
position: nil
extent: nil
firstCell: nil
lastCell: nil
BlRowLayout(BlBoxLayout)>>adaptContentsToExtent
Receiver: a BlRowLayout
Arguments and temporary variables:
Receiver's instance variables:
strategy: nil
targetReference: nil
position: nil
extent: nil
firstCell: nil
lastCell: nil
BlWellPanel>>initialize
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: nil
BlWellPanel class(Behavior)>>new
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(60817408))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #isRightToLeft
BlRowLayout(BlBoxLayout)>>initializeCells
BlRowLayout>>initializeCells
BlRowLayout(BlBoxLayout)>>adaptContentsToExtent
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlLayoutProperties>>hasFloating
14 July 2015 6:02:09.223608 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
Receiver: a BlLayoutProperties
Arguments and temporary variables:
aMessage: hasFloating
exception: MessageNotUnderstood: BlLayoutProperties>>hasFloating
resumeValue: nil
Receiver's instance variables:
positioning: #top
resizing: #rigid
anchors: nil
extentRestriction: nil
secondAxisProperties: a BlSecondAxisLayoutProperties
[ :origin :each |
| result |
result := origin
+
(each layoutProperties hasFloating
ifFalse: [ aBlock cull: origin cull: each ]
ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBrick: a BlWellPanel
aRectangle: (1@1) corner: (49@49)
anInteger: (0@0)
aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
origin: (0@0)
each: a BlDragWell
result: nil
Receiver's instance variables:
layouting: true
plugged: true
[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
Receiver: an Array(a BlDragWell)
Arguments and temporary variables:
thisValue: (0@0)
binaryBlock: [ :origin :each |
| result |
result := origin
+
(each layoutPr...etc...
nextValue: (0@0)
each: a BlDragWell
Receiver's instance variables:
an Array(a BlDragWell)
Array(SequenceableCollection)>>do:
Receiver: an Array(a BlDragWell)
Arguments and temporary variables:
aBlock: [ :each | nextValue := binaryBlock value: nextValue value: each ]
index: 1
Receiver's instance variables:
an Array(a BlDragWell)
Array(Collection)>>inject:into:
Receiver: an Array(a BlDragWell)
Arguments and temporary variables:
nextValue: (0@0)
thisValue: (0@0)
binaryBlock: [ :origin :each |
| result |
result := origin
+
(each layoutPr...etc...
Receiver's instance variables:
an Array(a BlDragWell)
BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBrick: a BlWellPanel
aRectangle: (1@1) corner: (49@49)
anInteger: (0@0)
aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
Receiver's instance variables:
layouting: true
plugged: true
BrHorizontalLinearLayout>>layout:in:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBrick: a BlWellPanel
newBounds: (1@1) corner: (49@49)
Receiver's instance variables:
layouting: true
plugged: true
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
Receiver: a BlBrickHeightTraverser
Arguments and temporary variables:
aView: a BlWellPanel
Receiver's instance variables:
isTraversing: nil
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
Receiver: a BlBrickHeightTraverser
Arguments and temporary variables:
aView: a BlWellPanel
aContextView: nil
shoudBeDamaged: true
Receiver's instance variables:
isTraversing: nil
BlBrickLayouter>>layout:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aMorph: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
BlBrickLayouter>>privateLayoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
BlockClosure>>ensure:
Receiver: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self priv...etc...
Arguments and temporary variables:
aBlock: [ layouting := false ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqu...etc...
startpc: 83
numArgs: 0
BlBrickLayouter>>privateForbidLayoutingWhile:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBlock: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick ->
aBric...etc...
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
[
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
BlockClosure>>ensure:
Receiver: [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layout...etc...
Arguments and temporary variables:
aBlock: [
layouting
ifFalse: [ BrServiceLocator uniqueInstance layouter retri...etc...
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: BlBrickLayouter>>layoutIn:
startpc: 77
numArgs: 0
BlBrickLayouter>>layoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aView: a BlWellPanel
newBounds: (1@1) corner: (49@49)
Receiver's instance variables:
layouting: true
plugged: true
BlockClosure>>ensure:
Receiver: [
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutI...etc...
Arguments and temporary variables:
aBlock: [ layouting := false ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
startpc: 52
numArgs: 0
BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBlock: [
"Compute the layout for the given morph based on the new bounds"
aVi...etc...
Receiver's instance variables:
layouting: true
plugged: true
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aView: a BlWellPanel
newBounds: (1@1) corner: (49@49)
Receiver's instance variables:
layouting: true
plugged: true
BlWellPanel(BlProtoView)>>doLayoutIn:
Receiver: a BlWellPanel
Arguments and temporary variables:
newInnerBounds: (1@1) corner: (49@49)
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlProtoView)>>doLayout
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlViewBoundsCache>>updateBounds
Receiver: a BlViewBoundsCache
Arguments and temporary variables:
Receiver's instance variables:
bounds: nil
extent: (50@50)
dirty: true
drawingBounds: nil
innerBounds: nil
updating: true
viewReference: a WeakArray(a BlWellPanel)
BlViewBoundsCache>>upToDate
Receiver: a BlViewBoundsCache
Arguments and temporary variables:
Receiver's instance variables:
bounds: nil
extent: (50@50)
dirty: true
drawingBounds: nil
innerBounds: nil
updating: true
viewReference: a WeakArray(a BlWellPanel)
BlViewBoundsCache>>bounds
Receiver: a BlViewBoundsCache
Arguments and temporary variables:
Receiver's instance variables:
bounds: nil
extent: (50@50)
dirty: true
drawingBounds: nil
innerBounds: nil
updating: true
viewReference: a WeakArray(a BlWellPanel)
BlWellPanel(BlProtoView)>>bounds
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aView: a BlWellPanel
aSubView: a BlWellPanel
Receiver's instance variables:
layouting: true
plugged: true
[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
Receiver: a BlWellPanel
Arguments and temporary variables:
aView: a BlWellPanel
ls: a BrHorizontalLinearLayout
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlockClosure>>cull:
Receiver: [ :ls | ls layoutOf: self changedFrom: aView ]
Arguments and temporary variables:
anArg: a BrHorizontalLinearLayout
Receiver's instance variables:
outerContext: BlWellPanel(BlProtoView)>>layoutChangedFrom:
startpc: 27
numArgs: 1
BlWellPanel(BlProtoView)>>layoutStrategyDo:
Receiver: a BlWellPanel
Arguments and temporary variables:
aBlock: [ :ls | ls layoutOf: self changedFrom: aView ]
ls: a BrHorizontalLinearLayout
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlProtoView)>>layoutChangedFrom:
Receiver: a BlWellPanel
Arguments and temporary variables:
aView: a BlWellPanel
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlProtoView)>>layoutChanged
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlMorph)>>privateAddedMorph:
Receiver: a BlWellPanel
Arguments and temporary variables:
aMorph: a BlDragWell
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
Receiver: a BlWellPanel
Arguments and temporary variables:
aMorph: a BlDragWell
index: 1
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlMorph)>>addMorphBack:
Receiver: a BlWellPanel
Arguments and temporary variables:
aMorph: a BlDragWell
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
value: Color lightYellow
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
Array(SequenceableCollection)>>do:
Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
Arguments and temporary variables:
aBlock: [ :value |
self
addMorphBack:
((self wellClass on: value)
panel:...etc...
index: 1
Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...
BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
--- The full stack ---
BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
[ :origin :each |
| result |
result := origin
+
(each layoutProperties hasFloating
ifFalse: [ aBlock cull: origin cull: each ]
ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
Array(SequenceableCollection)>>do:
Array(Collection)>>inject:into:
BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
BrHorizontalLinearLayout>>layout:in:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
BlBrickLayouter>>layout:
BlBrickLayouter>>privateLayoutIn:
[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>privateForbidLayoutingWhile:
[
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>layoutIn:
[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlockClosure>>ensure:
BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlWellPanel(BlProtoView)>>doLayoutIn:
BlWellPanel(BlProtoView)>>doLayout
BlViewBoundsCache>>updateBounds
BlViewBoundsCache>>upToDate
BlViewBoundsCache>>bounds
BlWellPanel(BlProtoView)>>bounds
BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlockClosure>>cull:
BlWellPanel(BlProtoView)>>layoutStrategyDo:
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlWellPanel(BlProtoView)>>layoutChanged
BlWellPanel(BlMorph)>>privateAddedMorph:
BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
BlWellPanel(BlMorph)>>addMorphBack:
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BrHorizontalLinearLayout>>hFloating:
14 July 2015 6:03:24.473608 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BrHorizontalLinearLayout(Object)>>doesNotUnderstand: #hFloating:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aMessage: hFloating: false
exception: MessageNotUnderstood: BrHorizontalLinearLayout>>hFloating:
resumeValue: nil
Receiver's instance variables:
layouting: false
plugged: true
BlWellPanel>>initialize
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BlLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: #()
layoutStrategy: a BlDummyLayoutStrategy
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: nil
BlWellPanel class(Behavior)>>new
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
BlWellPanel class>>withSevenPaleColors
Receiver: BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
superclass: BlMorph
methodDict: a
MethodDictionary(#addDefaultWellsAndPlus->BlWellPanel>>#addDefaul...etc...
format: 172
layout: a FixedLayout
instanceVariables: #(#title #defaultValues)
organization: a ClassOrganization
subclasses: nil
name: #BlWellPanel
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Bloc-DragPanels'
traitComposition: {}
localSelectors: nil
UndefinedObject>>DoIt
Receiver: nil
Arguments and temporary variables:
Receiver's instance variables:
nil
OpalCompiler>>evaluate
Receiver: an OpalCompiler
Arguments and temporary variables:
value: nil
selectedSource: a ReadStream
itsSelection: a Text for ''
itsSelectionString: ''
Receiver's instance variables:
ast: DoIt
^ BlWellPanel withSevenPaleColors openInWorld
source: a ReadStream
context: nil
receiver: nil
compilationContext: a CompilationContext
compilationContextClass: nil
useFaultyForParsing: false
RubSmalltalkEditor>>evaluate:andDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aStream: a ReadStream
aBlock: [ :result | aBlock value: result ]
result: nil
rcvr: nil
ctxt: nil
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
RubSmalltalkEditor>>highlightEvaluateAndDo:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [ :result | ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(204472320)
selectorChooser: nil
notificationStrategy: a GLMPopperNotificationStrategy
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(204472320)
Arguments and temporary variables:
editBlock: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
tex...etc...
Receiver's instance variables:
bounds: (0@0) corner: (580@69)
owner: a TransformWithLayoutMorph(782237696)
submorphs: an Array(a RubCursor(650379264) a
RubPrimarySelectionMorph(797704192...etc...
fullBounds: nil
color: Color transparent
extension: a MorphExtension (676069376) [other: (announcer -> an
Announcer) (k...etc...
model: a GLMRubricSmalltalkTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(743702528)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkScriptingMode
cursor: a RubCursor(650379264)
segments: an OrderedCollection(a RubHighlightSegmentMorph(940834816))
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
Receiver: a GLMMorphicPharoPlaygroundRenderer
Arguments and temporary variables:
ann: a GLMHighlightAndEvaluate
Receiver's instance variables:
renderer: a GLMMorphicRenderer
textMorph: a RubScrolledTextMorph(654049280)
textModel: a GLMRubricSmalltalkTextModel
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
nextInQueue: [
textMorph textArea
handleEdit: [
textMorph textArea editor ...etc...
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlHaloGlobalEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
BrHorizontalLinearLayout(Object)>>doesNotUnderstand: #hFloating:
BlWellPanel>>initialize
BlWellPanel class(Behavior)>>new
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:01.907607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
OrderedCollection(Object)>>errorSubscriptBounds:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
OrderedCollection>>at:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
anInteger: 11
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
Receiver: a RubPrimarySelectionMorph(653524992)
Arguments and temporary variables:
firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
firstLineIndex: 10
lastLineIndex: 8
firstLine: a RubTextLine 264 to: 291
lastLine: a RubTextLine 255 to: 262
verts: an OrderedCollection()
secondLine: nil
thirdLine: nil
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
Receiver: a RubPrimarySelectionMorph(653524992)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
Receiver: a RubPrimarySelectionMorph(653524992)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
Receiver: a RubPrimarySelectionMorph(653524992)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
Receiver: RubPrimarySelectionMorph
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
superclass: RubPlainSegmentMorph
methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
format: 170
layout: a FixedLayout
instanceVariables: #()
organization: a ClassOrganization
subclasses: nil
name: #RubPrimarySelectionMorph
classPool: a Dictionary()
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Rubric-Editing-Core'
traitComposition: {}
localSelectors: nil
announcer: nil
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 261
pointIndex: 262
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 261
pointIndex: 262
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>zapSelectionWith:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aText: a Text for 'u'
start: 261
stop: 347
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>addString:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aString: 'u'
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>normalCharacter:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aKeyboardEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>dispatch:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aKeyboardEvent: BlKeystrokeEvent('u')
return: [ :val | ^ val ]
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>keystroke:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aKeyboardEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
[
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
ifFalse: [ super keystroke: aKeyboardEvent ].
self selectorChooserKeystroke: aKeyboardEvent ] in
RubSmalltalkEditor>>keystroke:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aKeyboardEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
NECController class>>codeCompletionAround:textMorph:keyStroke:
Receiver: NECController
Arguments and temporary variables:
aBlock: [
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
ifFalse: [ su...etc...
aTextMorph: a RubEditingArea(556531712)
evt: BlKeystrokeEvent('u')
editor: a RubSmalltalkEditor
stringHolder: a RubScrolledTextModel
completionAllowed: true
controller: a NECController
Receiver's instance variables:
superclass: Object
methodDict: a
MethodDictionary(#additionals->NECController>>#additionals #captu...etc...
format: 142
layout: a FixedLayout
instanceVariables: #('model' 'menuMorph' 'editor' 'context'
'inverseMapping' 'c...etc...
organization: a ClassOrganization
subclasses: {NECWorkspaceController. NOCController}
name: #NECController
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'NECompletion-View'
traitComposition: {}
localSelectors: nil
uniqueInstance: a NECController
PharoCommonTools(ToolRegistry)>>codeCompletionAround:textMorph:keyStroke:
Receiver: a PharoCommonTools
Arguments and temporary variables:
aBlock: [
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
ifFalse: [ su...etc...
aTextMorph: a RubEditingArea(556531712)
evt: BlKeystrokeEvent('u')
Receiver's instance variables:
tools: an IdentityDictionary(#basicInspector->EyeInspector
#browser->Nautilus #...etc...
recentTools: a Dictionary(#basicInspector->a Set(EyeInspector)
#browser->a Set(...etc...
RubSmalltalkEditor>>completionAround:keyStroke:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aBlock: [
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
ifFalse: [ su...etc...
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor>>keystroke:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
aKeyboardEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
[ self editor keystroke: anEvent ] in
RubEditingArea(RubAbstractTextArea)>>keyStroke:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [ self editor keystroke: anEvent ]
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>keyStroke:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleKeystroke:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlKeystrokeEvent>>sentTo:
Receiver: BlKeystrokeEvent('u')
Arguments and temporary variables:
anObject: a RubEditingArea(556531712)
Receiver's instance variables:
timeStamp: 16733739
source: a BlHandMorph
windowIndex: 0
handler: nil
wasHandled: false
buttons: 0
position: (72.0(a)162.0)
keyValue: 117
charCode: 117
scanCode: 117
RubEditingArea(Morph)>>handleEvent:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(Morph)>>handleFocusEvent:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlSpaceEventListener>>sendFocusEvent:to:clear:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
focusHolder: a RubEditingArea(556531712)
aBlock: [ self keyboardFocus: nil ]
w: a BlWorldMorph
transformedEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a RubEditingArea(556531712)
mouseFocus: nil
lastMouseEvent: BlMouseMoveEvent((1486.0(a)1382.0) (1484@1384) 16732409 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>sendEvent:focus:clear:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
focusHolder: a RubEditingArea(556531712)
aBlock: [ self keyboardFocus: nil ]
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a RubEditingArea(556531712)
mouseFocus: nil
lastMouseEvent: BlMouseMoveEvent((1486.0(a)1382.0) (1484@1384) 16732409 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>sendEventToKeyboardFocus:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a RubEditingArea(556531712)
mouseFocus: nil
lastMouseEvent: BlMouseMoveEvent((1486.0(a)1382.0) (1484@1384) 16732409 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlSpaceEventListener>>keystroke:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a RubEditingArea(556531712)
mouseFocus: nil
lastMouseEvent: BlMouseMoveEvent((1486.0(a)1382.0) (1484@1384) 16732409 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>keystroke:
Receiver: a BlMorphicCompatibilitySpaceEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
next: a BlSpaceEventListener
BlHaloGlobalEventListener(BlEventListener)>>keystroke:
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlKeystrokeEvent>>sentToNext:
Receiver: BlKeystrokeEvent('u')
Arguments and temporary variables:
anObject: a BlHaloGlobalEventListener
Receiver's instance variables:
timeStamp: 16733739
source: a BlHandMorph
windowIndex: 0
handler: nil
wasHandled: false
buttons: 0
position: (1484.0(a)1384.0)
keyValue: 117
charCode: 117
scanCode: 117
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
anEvent: BlKeystrokeEvent('u')
listener: a BlHaloGlobalEventListener
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a RubEditingArea(556531712)
mouseFocus: nil
lastMouseEvent: BlMouseMoveEvent((1486.0(a)1382.0) (1484@1384) 16732409 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
BlockClosure>>cull:
Receiver: [ :listener | anEvent sentToNext: listener ]
Arguments and temporary variables:
anArg: a BlHaloGlobalEventListener
Receiver's instance variables:
outerContext: BlSpaceEventListener>>handleEvent:
startpc: 27
numArgs: 1
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
Receiver: a BlSpaceEventListener
Arguments and temporary variables:
aBlock: [ :listener | anEvent sentToNext: listener ]
el: a BlHaloGlobalEventListener
Receiver's instance variables:
started: true
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
keyboardFocus: a RubEditingArea(556531712)
mouseFocus: nil
lastMouseEvent: BlMouseMoveEvent((1486.0(a)1382.0) (1484@1384) 16732409 0)
mouseOverHandler: a BlMouseOverHandler
tickSubscribers: a WeakArray()
startSlideOccured: false
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>zapSelectionWith:
RubSmalltalkEditor(RubTextEditor)>>addString:
RubSmalltalkEditor(RubTextEditor)>>normalCharacter:
RubSmalltalkEditor(RubTextEditor)>>dispatch:
RubSmalltalkEditor(RubTextEditor)>>keystroke:
[
(self selectorChooserHandlesKeyboard: aKeyboardEvent)
ifFalse: [ super keystroke: aKeyboardEvent ].
self selectorChooserKeystroke: aKeyboardEvent ] in
RubSmalltalkEditor>>keystroke:
NECController class>>codeCompletionAround:textMorph:keyStroke:
PharoCommonTools(ToolRegistry)>>codeCompletionAround:textMorph:keyStroke:
RubSmalltalkEditor>>completionAround:keyStroke:
RubSmalltalkEditor>>keystroke:
[ self editor keystroke: anEvent ] in
RubEditingArea(RubAbstractTextArea)>>keyStroke:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>keyStroke:
RubEditingArea(RubAbstractTextArea)>>handleKeystroke:
BlKeystrokeEvent>>sentTo:
RubEditingArea(Morph)>>handleEvent:
RubEditingArea(Morph)>>handleFocusEvent:
BlSpaceEventListener>>sendFocusEvent:to:clear:
BlSpaceEventListener>>sendEvent:focus:clear:
BlSpaceEventListener>>sendEventToKeyboardFocus:
BlSpaceEventListener>>keystroke:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>keystroke:
BlHaloGlobalEventListener(BlEventListener)>>keystroke:
BlKeystrokeEvent>>sentToNext:
[ :listener | anEvent sentToNext: listener ] in
BlSpaceEventListener>>handleEvent:
BlockClosure>>cull:
[ :el | aBlock cull: el ] in BlSpaceEventListener>>privateReinjectEvent:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlockClosure>>cull:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>eventListenerDo:
BlSpaceEventListener>>privateReinjectEvent:
BlSpaceEventListener>>handleEvent:
BlMorphicCompatibilitySpaceEventListener(BlEventListener)>>handleEvent:
BlHaloGlobalEventListener(BlEventListener)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:01.941608 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
OrderedCollection(Object)>>errorSubscriptBounds:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
OrderedCollection>>at:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
anInteger: 11
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
Receiver: a RubPrimarySelectionMorph(201064448)
Arguments and temporary variables:
firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
firstLineIndex: 10
lastLineIndex: 8
firstLine: a RubTextLine 264 to: 291
lastLine: a RubTextLine 255 to: 262
verts: an OrderedCollection()
secondLine: nil
thirdLine: nil
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
Receiver: a RubPrimarySelectionMorph(201064448)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
Receiver: a RubPrimarySelectionMorph(201064448)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
Receiver: a RubPrimarySelectionMorph(201064448)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
Receiver: RubPrimarySelectionMorph
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
superclass: RubPlainSegmentMorph
methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
format: 170
layout: a FixedLayout
instanceVariables: #()
organization: a ClassOrganization
subclasses: nil
name: #RubPrimarySelectionMorph
classPool: a Dictionary()
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Rubric-Editing-Core'
traitComposition: {}
localSelectors: nil
announcer: nil
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 292
pointIndex: 261
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>recomputeSelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: nil
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubShoutStylerDecorator>>stylerStyled:
Receiver: a RubShoutStylerDecorator
Arguments and temporary variables:
styledCopyOfText: a Text for 'initialize
super initialize.
self withRectangle...etc...
Receiver's instance variables:
next: a RubCurrentLineBarDecorator
canvas: an AthensCairoCanvas
displayScanner: nil
position: (0@0)
styler: a RubSHTextStylerST80
shoutIsAvailable: true
text: a Text for 'initialize
super initialize.
self withRectangleViewDo: [ :v...etc...
replaceStart: 261
replaceStop: 346
RubShoutStylerDecorator>>stylerStyledInBackground:
Receiver: a RubShoutStylerDecorator
Arguments and temporary variables:
styledCopyOfText: a Text for 'initialize
super initialize.
self withRectangle...etc...
Receiver's instance variables:
next: a RubCurrentLineBarDecorator
canvas: an AthensCairoCanvas
displayScanner: nil
position: (0@0)
styler: a RubSHTextStylerST80
shoutIsAvailable: true
text: a Text for 'initialize
super initialize.
self withRectangleViewDo: [ :v...etc...
replaceStart: 261
replaceStop: 346
[ view ifNotNil: [ view stylerStyledInBackground: text ] ] in [
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] in [
sem := Semaphore new.
[
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
Receiver: a RubSHTextStylerST80
Arguments and temporary variables:
aText: a Text for 'initialize
super initialize.
self withRectangleViewDo: [ :...etc...
Receiver's instance variables:
sem: a Semaphore()
backgroundProcess: a Process in [
self privateStyle: text.
sem signal ] in [
...etc...
text: a Text for 'initialize
super initialize.
self withRectangleViewDo: [ :v...etc...
monitor: a Monitor
view: a RubShoutStylerDecorator
stylingEnabled: true
classOrMetaClass: BlWellPanel
workspace: nil
font: nil
parser: a SHParserST80
environment: nil
pixelHeight: 13.333333333333334
DelayWaitTimeout>>waitOnCompletion:onTimeout:
Receiver: a DelayWaitTimeout(5000 msecs)
Arguments and temporary variables:
completionBlock: [ view ifNotNil: [ view stylerStyledInBackground:
text ] ]
timeoutBlock: [
"do nothing if the styling has not finished or the process tur...etc...
Receiver's instance variables:
delaySemaphore: a Semaphore()
beingWaitedOn: false
millisecondDelayDuration: 5000
scheduler: a DelayMicrosecondScheduler
schedulerResumptionTime: 3614342706895607
process: a Process in nil
expired: false
Semaphore>>waitTimeoutSeconds:onCompletion:onTimeout:
Receiver: a Semaphore()
Arguments and temporary variables:
anInteger: 5
completionBlock: [ view ifNotNil: [ view stylerStyledInBackground:
text ] ]
timeoutBlock: [
"do nothing if the styling has not finished or the process tur...etc...
d: a DelayWaitTimeout(5000 msecs)
Receiver's instance variables:
firstLink: nil
lastLink: nil
excessSignals: 0
[
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] in [
sem := Semaphore new.
[
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
Receiver: a RubSHTextStylerST80
Arguments and temporary variables:
aText: a Text for 'initialize
super initialize.
self withRectangleViewDo: [ :...etc...
Receiver's instance variables:
sem: a Semaphore()
backgroundProcess: a Process in [
self privateStyle: text.
sem signal ] in [
...etc...
text: a Text for 'initialize
super initialize.
self withRectangleViewDo: [ :v...etc...
monitor: a Monitor
view: a RubShoutStylerDecorator
stylingEnabled: true
classOrMetaClass: BlWellPanel
workspace: nil
font: nil
parser: a SHParserST80
environment: nil
pixelHeight: 13.333333333333334
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil:...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: [
sem := Semaphore new.
[
sem notNil
ifTrue: [
sem
waitT...etc...
startpc: 108
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubEditingArea(RubAbstractTextArea)>>recomputeSelection
RubShoutStylerDecorator>>stylerStyled:
RubShoutStylerDecorator>>stylerStyledInBackground:
[ view ifNotNil: [ view stylerStyledInBackground: text ] ] in [
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] in [
sem := Semaphore new.
[
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
DelayWaitTimeout>>waitOnCompletion:onTimeout:
Semaphore>>waitTimeoutSeconds:onCompletion:onTimeout:
[
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] in [
sem := Semaphore new.
[
sem notNil
ifTrue: [
sem
waitTimeoutSeconds: 5
onCompletion: [ view ifNotNil: [ view stylerStyledInBackground: text ] ]
onTimeout: [
"do nothing if the styling has not finished or the process turned
into a zombie."
] ] ] forkAt: Processor activePriority.
backgroundProcess := [
self privateStyle: text.
sem signal ] forkAt: Processor userBackgroundPriority ] in
RubSHTextStylerST80(SHTextStyler)>>styleInBackgroundProcess:
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:09.767607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
OrderedCollection(Object)>>errorSubscriptBounds:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
OrderedCollection>>at:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
anInteger: 11
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
Receiver: a RubPrimarySelectionMorph(947388416)
Arguments and temporary variables:
firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
firstLineIndex: 10
lastLineIndex: 8
firstLine: a RubTextLine 264 to: 291
lastLine: a RubTextLine 255 to: 262
verts: an OrderedCollection()
secondLine: nil
thirdLine: nil
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
Receiver: a RubPrimarySelectionMorph(947388416)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
Receiver: a RubPrimarySelectionMorph(947388416)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
Receiver: a RubPrimarySelectionMorph(947388416)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
Receiver: RubPrimarySelectionMorph
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
superclass: RubPlainSegmentMorph
methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
format: 170
layout: a FixedLayout
instanceVariables: #()
organization: a ClassOrganization
subclasses: nil
name: #RubPrimarySelectionMorph
classPool: a Dictionary()
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Rubric-Editing-Core'
traitComposition: {}
localSelectors: nil
announcer: nil
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [ self editingState markBlock: markCharacterBlock pointBlock:
pointChar...etc...
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markCharacterBlock: a CharacterBlock with index 262 and surface
(76.80001831054...etc...
pointCharacterBlock: a CharacterBlock with index 262 and surface
(76.8000183105...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>click:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
event: BlMouseDownEvent((102@150) red 16741489 0)
p: a CharacterBlock with index 262 and surface
(76.80001831054688@139) corner: ...etc...
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor>>click:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
anEvent: BlMouseDownEvent((102@150) red 16741489 0)
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlMouseDownEvent((102@150) red 16741489 0)
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self editor click: anEvent.
self scrollSelectionIntoView: nil ]
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>click:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlMouseDownEvent((102@150) red 16741489 0)
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
MouseClickState>>click
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
Receiver's instance variables:
clickClient: a RubEditingArea(556531712)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((102@150) red 16741489 0)
firstClickUp: BlMouseUpEvent((1514@1372) 16741617 0)
firstClickTime: 16741489
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: nil
dragSelector: nil
dragThreshold: 5
MouseClickState>>handleEvent:from:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((1514@1372) 16741617 0)
aHand: a BlHandMorph
localEvt: BlMouseUpEvent((102@150) 16741617 0)
timedOut: false
isDrag: false
Receiver's instance variables:
clickClient: a RubEditingArea(556531712)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((102@150) red 16741489 0)
firstClickUp: BlMouseUpEvent((1514@1372) 16741617 0)
firstClickTime: 16741489
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: nil
dragSelector: nil
dragThreshold: 5
MouseClickState>>handleEvent:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((1514@1372) 16741617 0)
Receiver's instance variables:
clickClient: a RubEditingArea(556531712)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((102@150) red 16741489 0)
firstClickUp: BlMouseUpEvent((1514@1372) 16741617 0)
firstClickTime: 16741489
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: nil
dragSelector: nil
dragThreshold: 5
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseUpEvent((1514@1372) 16741617 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: a MouseClickState[#firstClickUp]
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseUpEvent((1514@1372) 16741617 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseUpEvent((1514@1372) 16741617 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 16741617 1514 1372 0 0 0 1)
evt: BlMouseUpEvent((1514@1372) 16741617 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 16741617 1514 1372 0 0 0 1)
lastKeyScanCode: 101
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
RubSmalltalkEditor(RubTextEditor)>>click:
RubSmalltalkEditor>>click:
[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:15.405607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
OrderedCollection(Object)>>errorSubscriptBounds:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
OrderedCollection>>at:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
anInteger: 11
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
Receiver: a RubPrimarySelectionMorph(7077888)
Arguments and temporary variables:
firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
firstLineIndex: 10
lastLineIndex: 8
firstLine: a RubTextLine 264 to: 291
lastLine: a RubTextLine 255 to: 262
verts: an OrderedCollection()
secondLine: nil
thirdLine: nil
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
Receiver: a RubPrimarySelectionMorph(7077888)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
Receiver: a RubPrimarySelectionMorph(7077888)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
Receiver: a RubPrimarySelectionMorph(7077888)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
Receiver: RubPrimarySelectionMorph
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
superclass: RubPlainSegmentMorph
methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
format: 170
layout: a FixedLayout
instanceVariables: #()
organization: a ClassOrganization
subclasses: nil
name: #RubPrimarySelectionMorph
classPool: a Dictionary()
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Rubric-Editing-Core'
traitComposition: {}
localSelectors: nil
announcer: nil
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [ self editingState markBlock: markCharacterBlock pointBlock:
pointChar...etc...
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markCharacterBlock: a CharacterBlock with index 262 and surface
(76.80001831054...etc...
pointCharacterBlock: a CharacterBlock with index 262 and surface
(76.8000183105...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>click:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
event: BlMouseDownEvent((92@149) red 16747129 0)
p: a CharacterBlock with index 262 and surface
(76.80001831054688@139) corner: ...etc...
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor>>click:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
anEvent: BlMouseDownEvent((92@149) red 16747129 0)
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlMouseDownEvent((92@149) red 16747129 0)
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self editor click: anEvent.
self scrollSelectionIntoView: nil ]
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>click:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
anEvent: BlMouseDownEvent((92@149) red 16747129 0)
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
MouseClickState>>click
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
Receiver's instance variables:
clickClient: a RubEditingArea(556531712)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((92@149) red 16747129 0)
firstClickUp: BlMouseUpEvent((1504@1371) 16747257 0)
firstClickTime: 16747129
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: nil
dragSelector: nil
dragThreshold: 5
MouseClickState>>handleEvent:from:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((1504@1371) 16747257 0)
aHand: a BlHandMorph
localEvt: BlMouseUpEvent((92@149) 16747257 0)
timedOut: false
isDrag: false
Receiver's instance variables:
clickClient: a RubEditingArea(556531712)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((92@149) red 16747129 0)
firstClickUp: BlMouseUpEvent((1504@1371) 16747257 0)
firstClickTime: 16747129
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: nil
dragSelector: nil
dragThreshold: 5
MouseClickState>>handleEvent:
Receiver: a MouseClickState[#firstClickUp]
Arguments and temporary variables:
evt: BlMouseUpEvent((1504@1371) 16747257 0)
Receiver's instance variables:
clickClient: a RubEditingArea(556531712)
clickState: #firstClickUp
firstClickDown: BlMouseDownEvent((92@149) red 16747129 0)
firstClickUp: BlMouseUpEvent((1504@1371) 16747257 0)
firstClickTime: 16747129
clickSelector: #click:
dblClickSelector: #doubleClick:
dblClickTime: 500
dblClickTimeoutSelector: nil
dragSelector: nil
dragThreshold: 5
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
Receiver: a BlMorphicDoubleClickOrDragEventListener
Arguments and temporary variables:
anEvent: BlMouseUpEvent((1504@1371) 16747257 0)
Receiver's instance variables:
next: a BlHaloGlobalEventListener
state: a MouseClickState[#firstClickUp]
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlMouseUpEvent((1504@1371) 16747257 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
event: BlMouseUpEvent((1504@1371) 16747257 0)
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlVMEventFetcher>>fetchedEventDo:
Receiver: a BlVMEventFetcher
Arguments and temporary variables:
aBlock: [ :event | self handleEvent: event ]
evtBuf: #(1 16747257 1504 1371 0 0 0 1)
evt: BlMouseUpEvent((1504@1371) 16747257 0)
type: 1
Receiver's instance variables:
space: a BlMorphicCompatibleBlocSpace [Bloc-1]
sensor: an InputEventSensor
lastEventBuffer: #(1 16747257 1504 1371 0 0 0 1)
lastKeyScanCode: 101
combinedChar: nil
recentModifiers: 0
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: a BlTickEvent
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicDoubleClickOrDragEventListener
deferredActions: WaitfreeQueue with 0 items
WeakMessageSend>>value:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
anObject: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg: a BlTickEvent
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
WeakMessageSend>>cull:cull:
Receiver: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSpace [Bloc-1] )
Arguments and temporary variables:
arg1: a BlTickEvent
arg2: an Announcer
Receiver's instance variables:
selector: #handlePrimaryTickEvent:
shouldBeNil: #()
arguments: a WeakArray()
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
Receiver: a WeakAnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a BlTickEvent
Receiver's instance variables:
list: a WeakFinalizationList
next: nil
announcer: an Announcer
announcementClass: BlTickEvent
action: WeakMessageSend(#handlePrimaryTickEvent: -> a
BlMorphicCompatibleBlocSp...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: WeakAnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markBlock:pointBlock:
RubSmalltalkEditor(RubTextEditor)>>click:
RubSmalltalkEditor>>click:
[
self editor click: anEvent.
self scrollSelectionIntoView: nil ] in
RubEditingArea(RubAbstractTextArea)>>click:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>click:
MouseClickState>>click
MouseClickState>>handleEvent:from:
MouseClickState>>handleEvent:
BlMorphicDoubleClickOrDragEventListener>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
[ :event | self handleEvent: event ] in
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlVMEventFetcher>>fetchedEventDo:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>processEvents
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
SubscriptOutOfBounds: 11
14 July 2015 6:05:21.007607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
OrderedCollection(Object)>>errorSubscriptBounds:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
OrderedCollection>>at:
Receiver: an OrderedCollection(a RubTextLine 1 to: 11 a RubTextLine 12
to: 30 a RubTextLine 31 to: 6...etc...
Arguments and temporary variables:
anInteger: 11
index: 11
Receiver's instance variables:
array: an Array(a RubTextLine 1 to: 11 a RubTextLine 12 to: 30 a
RubTextLine 31...etc...
firstIndex: 1
lastIndex: 10
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
Receiver: a RubPrimarySelectionMorph(501481472)
Arguments and temporary variables:
firstCB: a CharacterBlock with index 292 and surface
(240.60008239746094@177) c...etc...
lastCB: a CharacterBlock with index 261 and surface
(69.00001525878906@139) cor...etc...
firstLineIndex: 10
lastLineIndex: 8
firstLine: a RubTextLine 264 to: 291
lastLine: a RubTextLine 255 to: 262
verts: an OrderedCollection()
secondLine: nil
thirdLine: nil
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
Receiver: a RubPrimarySelectionMorph(501481472)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
Receiver: a RubPrimarySelectionMorph(501481472)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
Receiver: a RubPrimarySelectionMorph(501481472)
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
bounds: (0@0) corner: (20@20)
owner: nil
submorphs: #()
fullBounds: (0@0) corner: (20@20)
color: (Color r: 0.686 g: 0.835 b: 0.979 alpha: 1.0)
extension: nil
vertices: {(5@0). (20@10). (0@20)}
filledForm: nil
smoothCurve: false
curveState: nil
borderForm: nil
borderColor: nil
borderWidth: nil
textArea: a RubEditingArea(556531712)
firstIndex: 292
lastIndex: 261
icon: nil
iconBlock: nil
label: nil
changeable: false
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
Receiver: RubPrimarySelectionMorph
Arguments and temporary variables:
aTextArea: a RubEditingArea(556531712)
aFirstCharIndex: 292
aLastCharIndex: 261
Receiver's instance variables:
superclass: RubPlainSegmentMorph
methodDict: a
MethodDictionary(#defaultBorderColor->RubPrimarySelectionMorph>>#...etc...
format: 170
layout: a FixedLayout
instanceVariables: #()
organization: a ClassOrganization
subclasses: nil
name: #RubPrimarySelectionMorph
classPool: a Dictionary()
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Rubric-Editing-Core'
traitComposition: {}
localSelectors: nil
announcer: nil
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'initialize
super initialize.
self withRectangleVie...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'initialize
super initialize.
self withRectangleVie...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'initialize
super initialize.
self withRectangleVie...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'initialize
super initialize.
self withRectangleView...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'initialize
super initialize.
self withRectangleView...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>cancel
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenCanceEditRequestedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnoucement: a RubCanceEditRequestedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubCanceEditRequestedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenCanceEditRequestedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubCanceEditRequestedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenCanceEditRequestedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubCanceEditRequestedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenCanceEditRequestedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubCanceEditRequestedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubCanceEditRequestedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenCanceEditRequestedInModel: -> a
RubScrolledTextMorph(1...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>cancel
RubScrolledTextMorph>>whenCanceEditRequestedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
thLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'initialize
super initialize.
self withRectangleVie...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'initialize
super initialize.
self withRectangleVie...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'initialize
super initialize.
self withRectangleVie...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'initialize
super initialize.
self withRectangleView...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'initialize
super initialize.
self withRectangleView...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
dex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
rkIndex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
dex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
dex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableName...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'BlMorph subclass: #BlWellPanel
instanceVariableNames...etc...
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
dex: markIndex pointIndex: pointIndex ]
prevMarkBlock: nil
prevPointBlock: nil
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
markIndex: 1
pointIndex: 292
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
start: 1
stop: 291
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubSmalltalkEditor(RubTextEditor)>>selectAll
Receiver: a RubSmalltalkEditor
Arguments and temporary variables:
Receiver's instance variables:
defaultKeymappingIndex: an IdentityDictionary(#command->#(#noop:
#cursorHome: #...etc...
textArea: a RubEditingArea(556531712)
selectorChooser: nil
notificationStrategy: a RubTextInsertionStrategy
RubEditingArea(RubAbstractTextArea)>>selectAll
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'defaultExtent
^ 98 @ 60'
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
BlockClosure>>ensure:
Receiver: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelection...etc...
Arguments and temporary variables:
aBlock: [ self readOnly: wasEditable ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
beEditableWhile: [
aStringOrText = self text
ifFal...etc...
startpc: 57
numArgs: 0
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aBlock: [
aStringOrText = self text
ifFalse: [
self selectAll.
self edit...etc...
wasEditable: false
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'defaultExtent
^ 98 @ 60'
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>handleEdit:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
editBlock: [
self
beEditableWhile: [
aStringOrText = self text
ifFalse:...etc...
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
Receiver: a RubEditingArea(556531712)
Arguments and temporary variables:
aStringOrText: a Text for 'defaultExtent
^ 98 @ 60'
Receiver's instance variables:
bounds: (0@0) corner: (840@202)
owner: a TransformWithLayoutMorph(220987392)
submorphs: an Array(a RubCursor(70254592))
fullBounds: (0@0) corner: (840@202)
color: Color transparent
extension: a MorphExtension (1073217536) [other: (announcer -> an
Announcer) (...etc...
model: a RubScrolledTextModel
paragraph: a RubShoutStylerDecorator
editor: a RubSmalltalkEditor
scrollPane: a RubTextScrollPane(200540160)
editingState: a RubEditingState
textStyle: a TextStyle Source Code Pro
textColor: Color black
margins: (6@6) corner: (6@6)
readOnly: false
menuAllowed: nil
editingMode: a RubSmalltalkCodeMode
cursor: a RubCursor(70254592)
segments: an OrderedCollection()
getMenuPolicy: nil
wrapped: true
editorClass: RubSmalltalkEditor
RubTextScrollPane>>updateTextWith:
Receiver: a RubTextScrollPane(200540160)
Arguments and temporary variables:
stringOrText: a Text for 'defaultExtent
^ 98 @ 60'
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1478.0)
owner: a RubScrolledTextMorph(110886912)
submorphs: an Array(a TransformWithLayoutMorph(220987392))
fullBounds: (1412@1222) corner: (2252@1478)
color: Color transparent
extension: a MorphExtension (855900160) [other: (announcer -> an
Announcer) (k...etc...
scroller: a TransformWithLayoutMorph(220987392)
hScrollbar: a RubScrollBar(286261248)
vScrollbar: a RubScrollBar(915668992)
drawFocusBorder: true
RubScrolledTextMorph>>updateTextWith:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
stringOrText: a Text for 'defaultExtent
^ 98 @ 60'
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
RubScrolledTextMorph>>whenTextUpdatedInModel:
Receiver: a RubScrolledTextMorph(110886912)
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
bounds: (1412.0(a)1222.0) corner: (2252.0(a)1499.0)
owner: a PanelMorph(893386752)
submorphs: an Array(a RubTextScrollPane(200540160) a
RubAdornmentDisplayer(8931...etc...
fullBounds: (1412@1222) corner: (2252@1499)
color: Color white
extension: a MorphExtension (184549376) [other: (announcer -> an
Announcer) (k...etc...
hasEditingConflicts: false
hasUnacceptedEdits: false
alwaysAccept: nil
setTextSelector: #setText:from:
getTextSelector: #getText
getSelectionSelector: #primarySelectionInterval
autoAccept: false
scrollPane: a RubTextScrollPane(200540160)
rulers: a SortedCollection(a RubCodeSizeFeedback(926416896) a
NautilusAnnotatio...etc...
enabled: true
MessageSend>>value:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
anObject: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg: a RubTextUpdatedInModel
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
MessageSend>>cull:cull:
Receiver: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(110886912))
Arguments and temporary variables:
arg1: a RubTextUpdatedInModel
arg2: an Announcer
Receiver's instance variables:
receiver: a RubScrolledTextMorph(110886912)
selector: #whenTextUpdatedInModel:
arguments: #()
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a RubTextUpdatedInModel
Receiver's instance variables:
announcer: an Announcer
announcementClass: RubTextUpdatedInModel
subscriber: a RubScrolledTextMorph(110886912)
action: MessageSend(#whenTextUpdatedInModel: -> a
RubScrolledTextMorph(11088691...etc...
BlockClosure>>on:do:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: on: exception fork: handlerAction
"Activate the receiver. In ca...etc...
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
Receiver: [ action cull: anAnnouncement cull: announcer ]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: nil
ex: UnhandledError
copy: nil
onDoCtx: nil
process: nil
handler: nil
bottom: nil
thisCtx: nil
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 47
numArgs: 0
--- The full stack ---
OrderedCollection(Object)>>errorSubscriptBounds:
OrderedCollection>>at:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeStraightVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>computeVertices
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:
RubPrimarySelectionMorph(RubTextSegmentMorph)>>inTextArea:from:to:
RubPrimarySelectionMorph class(RubTextSegmentMorph
class)>>inTextArea:from:to:
RubEditingArea(RubAbstractTextArea)>>newPrimarySelection
RubEditingArea(RubAbstractTextArea)>>addPrimarySelection
RubEditingArea(RubAbstractTextArea)>>handleSelectionChange:
RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>markIndex:pointIndex:
RubSmalltalkEditor(RubTextEditor)>>selectInvisiblyFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectFrom:to:
RubSmalltalkEditor(RubTextEditor)>>selectAll
RubEditingArea(RubAbstractTextArea)>>selectAll
[
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] in [
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
BlockClosure>>ensure:
RubEditingArea(RubAbstractTextArea)>>beEditableWhile:
[
self
beEditableWhile: [
aStringOrText = self text
ifFalse: [
self selectAll.
self editor replaceSelectionWith: aStringOrText.
self deselect ] ] ] in
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
RubEditingArea(RubAbstractTextArea)>>updateTextWith:
RubTextScrollPane>>updateTextWith:
RubScrolledTextMorph>>updateTextWith:
RubScrolledTextMorph>>whenTextUpdatedInModel:
MessageSend>>value:
MessageSend>>cull:
MessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
MessageNotUnderstood: BlLayoutProperties>>hasFloating
14 July 2015 6:06:45.437607 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
Receiver: a BlLayoutProperties
Arguments and temporary variables:
aMessage: hasFloating
exception: MessageNotUnderstood: BlLayoutProperties>>hasFloating
resumeValue: nil
Receiver's instance variables:
positioning: #top
resizing: #rigid
anchors: nil
extentRestriction: nil
secondAxisProperties: a BlSecondAxisLayoutProperties
[ :origin :each |
| result |
result := origin
+
(each layoutProperties hasFloating
ifFalse: [ aBlock cull: origin cull: each ]
ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBrick: a BlWellPanel
aRectangle: (1@1) corner: (49@49)
anInteger: (0@0)
aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
origin: (0@0)
each: a BlDragWell
result: nil
Receiver's instance variables:
layouting: true
plugged: true
[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
Receiver: an Array(a BlDragWell)
Arguments and temporary variables:
thisValue: (0@0)
binaryBlock: [ :origin :each |
| result |
result := origin
+
(each layoutPr...etc...
nextValue: (0@0)
each: a BlDragWell
Receiver's instance variables:
an Array(a BlDragWell)
Array(SequenceableCollection)>>do:
Receiver: an Array(a BlDragWell)
Arguments and temporary variables:
aBlock: [ :each | nextValue := binaryBlock value: nextValue value: each ]
index: 1
Receiver's instance variables:
an Array(a BlDragWell)
Array(Collection)>>inject:into:
Receiver: an Array(a BlDragWell)
Arguments and temporary variables:
nextValue: (0@0)
thisValue: (0@0)
binaryBlock: [ :origin :each |
| result |
result := origin
+
(each layoutPr...etc...
Receiver's instance variables:
an Array(a BlDragWell)
BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBrick: a BlWellPanel
aRectangle: (1@1) corner: (49@49)
anInteger: (0@0)
aBlock: [ :origin :each |
each privatePosition: (origin x + each marginLeft) @...etc...
Receiver's instance variables:
layouting: true
plugged: true
BrHorizontalLinearLayout>>layout:in:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBrick: a BlWellPanel
newBounds: (1@1) corner: (49@49)
Receiver's instance variables:
layouting: true
plugged: true
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
Receiver: a BlBrickHeightTraverser
Arguments and temporary variables:
aView: a BlWellPanel
Receiver's instance variables:
isTraversing: nil
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
Receiver: a BlBrickHeightTraverser
Arguments and temporary variables:
aView: a BlWellPanel
aContextView: nil
shoudBeDamaged: true
Receiver's instance variables:
isTraversing: nil
BlBrickLayouter>>layout:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aMorph: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
BlBrickLayouter>>privateLayoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
BlockClosure>>ensure:
Receiver: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self priv...etc...
Arguments and temporary variables:
aBlock: [ layouting := false ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqu...etc...
startpc: 83
numArgs: 0
BlBrickLayouter>>privateForbidLayoutingWhile:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBlock: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick ->
aBric...etc...
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
[
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
BlockClosure>>ensure:
Receiver: [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layout...etc...
Arguments and temporary variables:
aBlock: [
layouting
ifFalse: [ BrServiceLocator uniqueInstance layouter retri...etc...
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: BlBrickLayouter>>layoutIn:
startpc: 77
numArgs: 0
BlBrickLayouter>>layoutIn:
Receiver: a BlBrickLayouter
Arguments and temporary variables:
aBrick: a BlWellPanel
Receiver's instance variables:
layouting: true
layoutDoneStack: a LinkedList(a BlWellPanel->(0@0) corner: (50@50))
[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aView: a BlWellPanel
newBounds: (1@1) corner: (49@49)
Receiver's instance variables:
layouting: true
plugged: true
BlockClosure>>ensure:
Receiver: [
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutI...etc...
Arguments and temporary variables:
aBlock: [ layouting := false ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
startpc: 52
numArgs: 0
BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aBlock: [
"Compute the layout for the given morph based on the new bounds"
aVi...etc...
Receiver's instance variables:
layouting: true
plugged: true
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aView: a BlWellPanel
newBounds: (1@1) corner: (49@49)
Receiver's instance variables:
layouting: true
plugged: true
BlWellPanel(BlProtoView)>>doLayoutIn:
Receiver: a BlWellPanel
Arguments and temporary variables:
newInnerBounds: (1@1) corner: (49@49)
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlProtoView)>>doLayout
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlViewBoundsCache>>updateBounds
Receiver: a BlViewBoundsCache
Arguments and temporary variables:
Receiver's instance variables:
bounds: nil
extent: (50@50)
dirty: true
drawingBounds: nil
innerBounds: nil
updating: true
viewReference: a WeakArray(a BlWellPanel)
BlViewBoundsCache>>upToDate
Receiver: a BlViewBoundsCache
Arguments and temporary variables:
Receiver's instance variables:
bounds: nil
extent: (50@50)
dirty: true
drawingBounds: nil
innerBounds: nil
updating: true
viewReference: a WeakArray(a BlWellPanel)
BlViewBoundsCache>>bounds
Receiver: a BlViewBoundsCache
Arguments and temporary variables:
Receiver's instance variables:
bounds: nil
extent: (50@50)
dirty: true
drawingBounds: nil
innerBounds: nil
updating: true
viewReference: a WeakArray(a BlWellPanel)
BlWellPanel(BlProtoView)>>bounds
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
Receiver: a BrHorizontalLinearLayout
Arguments and temporary variables:
aView: a BlWellPanel
aSubView: a BlWellPanel
Receiver's instance variables:
layouting: true
plugged: true
[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
Receiver: a BlWellPanel
Arguments and temporary variables:
aView: a BlWellPanel
ls: a BrHorizontalLinearLayout
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlockClosure>>cull:
Receiver: [ :ls | ls layoutOf: self changedFrom: aView ]
Arguments and temporary variables:
anArg: a BrHorizontalLinearLayout
Receiver's instance variables:
outerContext: BlWellPanel(BlProtoView)>>layoutChangedFrom:
startpc: 27
numArgs: 1
BlWellPanel(BlProtoView)>>layoutStrategyDo:
Receiver: a BlWellPanel
Arguments and temporary variables:
aBlock: [ :ls | ls layoutOf: self changedFrom: aView ]
ls: a BrHorizontalLinearLayout
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlProtoView)>>layoutChangedFrom:
Receiver: a BlWellPanel
Arguments and temporary variables:
aView: a BlWellPanel
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlProtoView)>>layoutChanged
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlMorph)>>privateAddedMorph:
Receiver: a BlWellPanel
Arguments and temporary variables:
aMorph: a BlDragWell
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
Receiver: a BlWellPanel
Arguments and temporary variables:
aMorph: a BlDragWell
index: 1
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
BlWellPanel(BlMorph)>>addMorphBack:
Receiver: a BlWellPanel
Arguments and temporary variables:
aMorph: a BlDragWell
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
value: Color lightYellow
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
Array(SequenceableCollection)>>do:
Receiver: {Color lightYellow. Color lightGreen. Color lightBlue. Color
white. Color veryVeryLightGra...etc...
Arguments and temporary variables:
aBlock: [ :value |
self
addMorphBack:
((self wellClass on: value)
panel:...etc...
index: 1
Receiver's instance variables:
{Color lightYellow. Color lightGreen. Color lightBlue. Color white.
Color veryVeryLightGra...etc...
BlWellPanel>>addDefaultWellsAndPlus
Receiver: a BlWellPanel
Arguments and temporary variables:
Receiver's instance variables:
transform: an AthensAffineTransform
ownerReference: nil
visible: true
properties: an IdentityDictionary()
layoutProperties: a BrLayoutProperties
boundsCache: a BlViewBoundsCache
theme: nil
nextSiblingReference: nil
previousSiblingReference: nil
spaceReference: a WeakArray(a BlMorphicCompatibleBlocSpace [Bloc-1] )
eventListener: a BlMorphEventListener
errorOnDraw: false
locked: false
view: a BlRectangleView
announcer: an Announcer
submorphs: an Array(a BlDragWell)
layoutStrategy: a BrHorizontalLinearLayout
zIndex: nil
style: a BlUINullStyle
title: nil
defaultValues: {Color lightYellow. Color lightGreen. Color lightBlue.
Color whi...etc...
--- The full stack ---
BlLayoutProperties(Object)>>doesNotUnderstand: #hasFloating
[ :origin :each |
| result |
result := origin
+
(each layoutProperties hasFloating
ifFalse: [ aBlock cull: origin cull: each ]
ifTrue: [ self float: each ]).
self align: each.
BrServiceLocator uniqueInstance layouter layoutDone: each -> aRectangle.
result ] in BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
[ :each | nextValue := binaryBlock value: nextValue value: each ] in
Array(Collection)>>inject:into:
Array(SequenceableCollection)>>do:
Array(Collection)>>inject:into:
BrHorizontalLinearLayout(BrLinearLayout)>>layout:in:inject:into:
BrHorizontalLinearLayout>>layout:in:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutComponents:
BlBrickHeightTraverser(BlBrickLayoutTraverser)>>layoutAround:inContext:
BlBrickLayouter>>layout:
BlBrickLayouter>>privateLayoutIn:
[
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] in [
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>privateForbidLayoutingWhile:
[
self
privateForbidLayoutingWhile: [
BrServiceLocator uniqueInstance layouter layoutDone: aBrick -> aBrick
bounds.
self privateLayoutIn: aBrick ] ] in BlBrickLayouter>>layoutIn:
BlockClosure>>ensure:
BlBrickLayouter>>layoutIn:
[
"Compute the layout for the given morph based on the new bounds"
aView aboutToDoLayoutIn: newBounds.
BrServiceLocator uniqueInstance layouter layoutIn: aView ] in
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlockClosure>>ensure:
BrHorizontalLinearLayout(BlLayoutStrategy)>>privateForbidLayoutingWhile:
BrHorizontalLinearLayout(BrLinearLayout)>>doLayout:in:
BlWellPanel(BlProtoView)>>doLayoutIn:
BlWellPanel(BlProtoView)>>doLayout
BlViewBoundsCache>>updateBounds
BlViewBoundsCache>>upToDate
BlViewBoundsCache>>bounds
BlWellPanel(BlProtoView)>>bounds
BrHorizontalLinearLayout(BrLinearLayout)>>layoutOf:changedFrom:
[ :ls | ls layoutOf: self changedFrom: aView ] in
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlockClosure>>cull:
BlWellPanel(BlProtoView)>>layoutStrategyDo:
BlWellPanel(BlProtoView)>>layoutChangedFrom:
BlWellPanel(BlProtoView)>>layoutChanged
BlWellPanel(BlMorph)>>privateAddedMorph:
BlWellPanel(BlMorph)>>privateAddMorph:atIndex:
BlWellPanel(BlMorph)>>addMorphBack:
[ :value |
self
addMorphBack:
((self wellClass on: value)
panel: self;
yourself) ] in BlWellPanel>>addDefaultWellsAndPlus
Array(SequenceableCollection)>>do:
BlWellPanel>>addDefaultWellsAndPlus
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlWellPanel>>defaultValues:
BlWellPanel class>>withSevenPaleColors
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[
textMorph textArea
handleEdit: [
textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in
GLMMorphicPharoPlaygroundRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>runDeferredActions
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handlePrimaryTickEvent:
WeakMessageSend>>value:
WeakMessageSend>>cull:
WeakMessageSend>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in
WeakAnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[ Processor terminateActive ] in on: exception fork: handlerAction
"Activate the receiver. In case of exception, fork a new process, which
will handle an error.
An original process will continue running as if receiver evaluation
finished and answered nil,
i.e., an expression like:
[ self error: 'some error'] on: Error fork: [:ex | 123 ]
will always answer nil for original process, not 123.
The context stack , starting from context which sent this message to
receiver and
up to the top of the stack will be transferred to forked process, with
handlerAction on top.
(so when the forked process will be resuming, it will enter the
handlerAction)
"
^ self
on: exception
do: [ :ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home. "find the context on stack for which this
method's is sender"
[ onDoCtx sender == thisCtx ]
whileFalse: [
onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [
"Can't find our home context. seems like we're already forked
and handling another exception in new thread. In this case, just
pass it through handler."
^ handlerAction cull: ex ] ].
bottom := [ Processor terminateActive ] asContext.
onDoCtx privSender: bottom.
handler := [ handlerAction cull: ex ] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority)
resume. "cut the stack of current process"
thisContext privSender: thisCtx.
nil ] in BlockClosure>>on:fork:
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:05.708422 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 0 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
--- The full stack ---
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
-- and more not shown
---------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:05.722422 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.684421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlHaloGlobalEventListener(BlGlobalEventListener)>>space
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlHaloGlobalEventListener
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 6 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
--- The full stack ---
BlHaloGlobalEventListener(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
-- and more not shown
---------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.690421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.692421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.694421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.694421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:12.696421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.930422 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
BlMorphicCompatibilitySpaceEventListener(BlGlobalEventListener)>>space
Receiver: a BlMorphicCompatibilitySpaceEventListener
Arguments and temporary variables:
Receiver's instance variables:
next: a BlSpaceEventListener
BlHaloGlobalEventListener(BlGlobalEventListener)>>space
Receiver: a BlHaloGlobalEventListener
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicCompatibilitySpaceEventListener
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlHaloGlobalEventListener
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
aBlock: [ :sp | sp removeEventListener: self ]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicEventListenerRecord>>handleEvent:
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEvent: BlEventListenerRemovedEvent(a BlMorphicCompatibleBlocSpace
[Bloc-1] )
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
Receiver: a BlMorphicCompatibleBlocSpace [Bloc-1]
Arguments and temporary variables:
anEventListener: a BlMorphicEventListenerRecord
Receiver's instance variables:
rootMorph: a BlSpaceMorph
manager: a BlMorphicUIManager
identifier: 'Bloc-1'
announcer: an Announcer
alarmQueue: a BlAlarmQueue
fataDrawingError: false
mainLoopManager: a BlMainLoopManager
eventFetcher: a BlVMEventFetcher
eventListener: a BlMorphicEventListenerRecord
deferredActions: WaitfreeQueue with 16 items
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
Receiver: a BlMorphicEventListenerRecord
Arguments and temporary variables:
sp: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
next: a BlMorphicEventListenerRecord
morphicListenerReference: a WeakArray(nil)
BlockClosure>>cull:
Receiver: [ :sp | sp removeEventListener: self ]
Arguments and temporary variables:
anArg: a BlMorphicCompatibleBlocSpace [Bloc-1]
Receiver's instance variables:
outerContext: BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
startpc: 26
numArgs: 1
--- The full stack ---
BlMorphicCompatibilitySpaceEventListener(BlGlobalEventListener)>>space
BlHaloGlobalEventListener(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>space
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlMorphicEventListenerRecord>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>handleEvent:
BlMorphicCompatibleBlocSpace(BlBlocSpace)>>removeEventListener:
[ :sp | sp removeEventListener: self ] in
BlMorphicEventListenerRecord(BlGlobalEventListener)>>unplug
BlockClosure>>cull:
BlMorphicEventListenerRecord(BlGlobalEventListener)>>spaceDo:
-- and more not shown
---------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.936421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.938421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.938421 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.940422 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
THERE_BE_DRAGONS_HERE
User Interrupt
14 July 2015 8:34:14.940422 pm
VM: unix - i686 - linux-gnu - NBCoInterpreter
NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
acc98e51-2fba-4841-a965-2975997bba66 May 15 2014
https://github.com/pharo-project/pharo-vm.git Commit:
ed4a4f59208968a21d82fd2406f75c2c4de558b2 Date: 2014-05-15 18:23:04 +0200
By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #14826
Image: Pharo5.0 [Latest update: #50170]
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [
tickEvent := BlTickEvent new source: self.
[
self doOneCycle.
Processor yield ] repeat...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: BlMainLoopManager>>loop
startpc: 41
numArgs: 0
--- The full stack ---
[
self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
1
1
Branch: refs/tags/50172
Home: https://github.com/pharo-project/pharo-core
1
0
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 9a9ef5d5866be4802ee70f7225c4b8a08ce65e26
https://github.com/pharo-project/pharo-core/commit/9a9ef5d5866be4802ee70f72…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-07-15 (Wed, 15 Jul 2015)
Changed paths:
M Monticello.package/MCFileBasedRepository.class/instance/accessing/closestAncestorVersionFor_ifNone_.st
A Monticello.package/MCFileBasedRepository.class/instance/loading/notCachedVersionWithInfo_.st
A NativeBoost-Core.package/NBBufferWithOffset.class/README.md
A NativeBoost-Core.package/NBBufferWithOffset.class/class/marshalling/asNBExternalType_.st
A NativeBoost-Core.package/NBBufferWithOffset.class/definition.st
A NativeBoost-Core.package/NBBufferWithOffset.class/instance/accessing/buffer.st
A NativeBoost-Core.package/NBBufferWithOffset.class/instance/accessing/buffer_.st
A NativeBoost-Core.package/NBBufferWithOffset.class/instance/accessing/offset.st
A NativeBoost-Core.package/NBBufferWithOffset.class/instance/accessing/offset_.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/README.md
A NativeBoost-Core.package/NBBufferWithOffsetType.class/class/instance creation/objectClass_.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/definition.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/accessing/bufferIvarIndex.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/accessing/objectClass.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/accessing/objectClass_.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/accessing/offsetIvarIndex.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/accessing/valueSize.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/emitting code/coerceReturn_.st
A NativeBoost-Core.package/NBBufferWithOffsetType.class/instance/emitting code/pushAsValue_.st
A NativeBoost-Tests.package/NBBufferWithOffsetTests.class/README.md
A NativeBoost-Tests.package/NBBufferWithOffsetTests.class/definition.st
A NativeBoost-Tests.package/NBBufferWithOffsetTests.class/instance/private/readByte_.st
A NativeBoost-Tests.package/NBBufferWithOffsetTests.class/instance/tests/testConversionWorks.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50171.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50172.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50171.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50172.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
Log Message:
-----------
50172
6964 "Changes" in Monticello seems to compare to the latest in the cache
https://pharo.fogbugz.com/f/cases/6964
15976 Feature a buffer with offset type
https://pharo.fogbugz.com/f/cases/15976
15978 disable fasttable
https://pharo.fogbugz.com/f/cases/15978
http://files.pharo.org/image/50/50172.zip
1
0
Hi
I discovered that in Pharo 5, having two or more browser windows open significantly reduces responsiveness in the image (delayed clicks, ghosting when moving windows etc.). This is especially true if a method has been selected in two or more windows. The ghosting becomes much worse when you drag a window. I checked that the same does not happen in Pharo 4.
I originally thought that there was a strong impact on CPU load too, but itâs actually not that bad.
Has anybody seen this or even worked on a fix for it? If not, Iâll open a bug report.
Cheers,
Max
1
0
Branch: refs/tags/50171
Home: https://github.com/pharo-project/pharo-core
1
0
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 39b966a9b2b879786dbd0b4c2c5954c3a9d8dc9c
https://github.com/pharo-project/pharo-core/commit/39b966a9b2b879786dbd0b4c…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-07-15 (Wed, 15 Jul 2015)
Changed paths:
M CodeImport.package/ClassOrganizationChunk.class/instance/visiting/accept_.st
M Monticello.package/MCWorkingCopy.class/instance/accessing/loadRemoteDependenciesIn_.st
M Refactoring-Core.package/RBPullUpMethodRefactoring.class/instance/transforming/removeDuplicatesOf_.st
A Refactoring-Core.package/RBRefactoring.class/instance/private/refactoringConfirmWarning_.st
A Reflectivity-Tests.package/CoverageDemoTest.class/instance/as yet unclassified/tearDown.st
A Reflectivity-Tests.package/CoverageDemoTest.class/instance/test/testCoverageAST.st
A Reflectivity.package/RFReification.class/instance/as yet unclassified/genForRBLiteralValueNode.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50170.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50171.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50170.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50171.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
M Tool-ExternalBrowser.package/RingChunkImporter.class/instance/private/createTraitNamed_.st
Log Message:
-----------
50171
15928 âÃúPush upâÃù refactoring presents a question as a disappearing notification
https://pharo.fogbugz.com/f/cases/15928
15965 Strange Slice+Changes behavior (shows too many changes)
https://pharo.fogbugz.com/f/cases/15965
15964 RingChunkImporter can not import TraitDefinitions
https://pharo.fogbugz.com/f/cases/15964
15727 RingChunkImporter can not import ClassOrganizationChunk
https://pharo.fogbugz.com/f/cases/15727
15963 Test: code coverage per node
https://pharo.fogbugz.com/f/cases/15963
http://files.pharo.org/image/50/50171.zip
1
0
When loading TWM from the Configuration Browser, the version shown is
ConfigurationOfTilingWindowManager-LaurentLaffont.28. But when I click load,
ConfigurationOfTilingWindowManager-PhilippeBack.28 is what actually gets
loaded, presumably from my cache, and which has no stable version for 4.0.
Another strange thing to note is that
ConfigurationOfTilingWindowManager-PhilippeBack.28 reports its ancestor as
ConfigurationOfTilingWindowManager-PhilippeBack.28! Huh?
Is anyone else experiencing this and what should be done?
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Loading-TWM-in-Pharo-4-0-tp4837023.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
3
3
Writing a LayoutStrategy in Bloc can be easy.
Generic layout strategies get complex because
they can be parametrized a lot. That tends to
distract from the essentials.
In this case, all I need is a strategy that
adds submorphs from left to right in the panel,
breaking to a new line when it is full, and
recalculate the height when finished.
A LayoutStrategy needs to provide only one
method #layout:in:. In that, the morph and its
submorphs need to be layouted in the proposed
bounds. These bounds can be changed. Resizing
needs to happen with #innerExtent:, not with
#extent: as that results in a non-interruptible
loop.
Instead of using #submorphsDo, Bloc uses
#layoutComponentsDo:.
BlCardLayout>>layout: aMorph in: newBounds
|offset maxHeight|
offset := 0@0.
maxHeight := 0.
aMorph layoutComponentsDo: [ :component |
offset x + component width > newBounds width ifTrue: [
"start a new line"
offset := 0@ (offset y + maxHeight).
maxHeight := 0].
component position: offset.
maxHeight := maxHeight max: component height.
offset := (offset x + component width) @ offset y].
maxHeight + offset y > aMorph height ifTrue: [
aMorph innerExtent: aMorph innerExtent x @ (maxHeight+ offset y)]
For the card wall I'll need to add margin and inset.
Stephan
2
1
I'm looking at a way to layout the drag wells in a drag panel.
I would like the width of the panel to remain constant, and the
submorphs to be layed out flowing into new rows. How do I do that
with the new layout strategies?
Stephan
2
1
Hi,
In the latest version (169) in Nautilus method code does not get
highlighted (or gets highlighted highlighted) very slowly. I think it comes
from rubric.
Can anyone else confirm.
Andrei
3
4