[FIX] Update 5764 UI termination fix (problem)
Doug Way
dway at mailcan.com
Sat Mar 6 18:53:32 UTC 2004
On Saturday, March 6, 2004, at 12:56 PM, Ned Konz wrote:
> On Friday 05 March 2004 3:36 pm, Doug Way wrote:
>> Actually, it looks like the update stream problem is a bit more
>> serious... if you start with a 5707 or earlier alpha image, and load
>> updates, it will stop at 5764 even if there are more updates in the
>> stream after that. Kind of makes sense that that would happen, since
>> the UI process is being terminated.
>
> Attached is a CS that fixes this problem.
>
> It also removes the unnecessary instance variable in the Hand.
Thanks Ned, just tried it in the test/internal update stream.
It does fix the termination-related problems, but unfortunately an
error occurs afterward: "MessageNotUnderstood:
HandMorph>>isGenieRecognizing" ...I've attached the debug log.
After closing the debugger, things go back to normal. (makes sense,
since closing the debugger ends the UI process which had the problems)
To reproduce this:
- start with a fresh 5707 or earlier alpha image
- load my seeInternalUpdates changeset which I posted yesterday
- load updates from the "SqC Internal Updates*" stream
- Doug
-----------------------------------------
MessageNotUnderstood: HandMorph>>isGenieRecognizing
6 March 2004 1:41:06 pm
VM: Mac OS - a SmalltalkImage
Image: Squeak3.7alpha [latest update: #5765]
HandMorph(Object)>>doesNotUnderstand: #isGenieRecognizing
Receiver: a HandMorph(3216)
Arguments and temporary variables:
aMessage: isGenieRecognizing
Receiver's instance variables:
bounds: 235 at 289 corner: 251 at 305
owner: a PasteUpMorph(1622) [world]
submorphs: #()
fullBounds: 235 at 289 corner: 251 at 305
color: Color blue
extension: a MorphExtension (539) [eventHandler = an EventHandler]
mouseFocus: nil
keyboardFocus: a TextMorphForEditView(3763)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [238 at 308 235 at 289 mouseMove 581508]
targetOffset: 98 at 7
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 581508 238 308 0 0 0 0)
[] in WorldState>>DoItwith: {[:h | ActiveHand := h. h processEvents.
h isGenieRecognizing ifTrue: [r...]}
Arguments and temporary variables:
aWorld: a PasteUpMorph(1622) [world]
recognizing: false
h: a HandMorph(3216)
Array(SequenceableCollection)>>do:
Receiver: #(a HandMorph(3216))
Arguments and temporary variables:
aBlock: [] in WorldState>>DoItwith: {[:h | ActiveHand := h. h
processEvents. h isGenieRecognizing ifTrue: [r...]}...etc...
index: 1
indexLimiT: 1
Receiver's instance variables:
#(a HandMorph(3216))
WorldState>>handsDo:
Receiver: a WorldState
Arguments and temporary variables:
aBlock: [] in WorldState>>DoItwith: {[:h | ActiveHand := h. h
processEvents. h isGenieRecognizing ifTrue: [r...]}...etc...
Receiver's instance variables:
hands: #(a HandMorph(3216))
activeHand: a HandMorph(3216)
viewBox: 0 at 0 corner: 800 at 600
canvas: a FormCanvas on: DisplayScreen(800x600x16)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a PreDebugWindow(1379))(a
PreDebugWind...etc...
lastStepTime: 581571
lastStepMessage: nil
lastCycleTime: 581421
commandHistory: a CommandHistory
alarms: a Heap()
lastAlarmTime: 581571
remoteServer: nil
multiCanvas: nil
--- The full stack ---
HandMorph(Object)>>doesNotUnderstand: #isGenieRecognizing
[] in WorldState>>DoItwith: {[:h | ActiveHand := h. h processEvents.
h isGenieRecognizing ifTrue: [r...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WorldState>>DoItwith:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
yield. false] whileFalse. nil]}
[] in BlockContext>>newProcess {[self value. Processor
terminateActive]}
More information about the Squeak-dev
mailing list
|