Hi All,
in working on the compactor in the simulator I'm observing some loooong pauses due to some, um, interesting image code. For example...
-16r31A8 IdentityDictionary>scanFor: 16r7333E8: a(n) IdentityDictionary -16r3184 IdentityDictionary(Dictionary)>at:ifAbsent: 16r7333E8: a(n) IdentityDictionary -16r3160 MorphExtension>valueOfProperty: 16r4341A0: a(n) MorphExtension -16r3140 PasteUpMorph(Morph)>valueOfProperty: 16r898788: a(n) PasteUpMorph -16r3120 PasteUpMorph(Morph)>eventBubbleFilters 16r898788: a(n) PasteUpMorph -16r30F4 PasteUpMorph(Morph)>sendFilterEventBubble:for: 16r898788: a(n) PasteUpMorph -16r30CC PasteUpMorph(Morph)>handleEvent: 16r898788: a(n) PasteUpMorph -16r30A0 [] in MorphicEventDispatcher>doBubblingForFocusEvent:with: 16r2638F8: a(n) MorphicEventDispatcher -16r3080 PasteUpMorph(Morph)>withAllOwnersDo: 16r898788: a(n) PasteUpMorph -16r3060 FillInTheBlankMorph(Morph)>allOwnersDo: 16r9A498: a(n) FillInTheBlankMorph -16r3038 MorphicEventDispatcher>doBubblingForFocusEvent:with: 16r2638F8: a(n) MorphicEventDispatcher -16r3010 MorphicEventDispatcher>dispatchFocusEventFully:with: 16r2638F8: a(n) MorphicEventDispatcher -16r2B38 FillInTheBlankMorph(DialogWindow)>processFocusEvent:using: 16r9A498: a(n) FillInTheBlankMorph -16r2B14 FillInTheBlankMorph(Morph)>processFocusEvent: 16r9A498: a(n) FillInTheBlankMorph -16r2AE8 [] in HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph -16r2AC4 BlockClosure>ensure: 16r263860: a(n) BlockClosure -16r2AA0 MouseEvent(MorphicEvent)>becomeActiveDuring: 16r2634C0: a(n) MouseEvent -16r2A74 [] in HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph -16r2A50 BlockClosure>ensure: 16r263768: a(n) BlockClosure -16r2A2C HandMorph>becomeActiveDuring: 16rC85548: a(n) HandMorph -16r2A00 [] in HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph -16r29DC BlockClosure>ensure: 16r263670: a(n) BlockClosure -16r29B8 PasteUpMorph>becomeActiveDuring: 16r898788: a(n) PasteUpMorph -16r2990 HandMorph>sendFocusEvent:to:clear: 16rC85548: a(n) HandMorph -16r2960 HandMorph>sendEvent:focus:clear: 16rC85548: a(n) HandMorph -16r2938 HandMorph>sendMouseEvent: 16rC85548: a(n) HandMorph -16r2914 HandMorph>handleEvent: 16rC85548: a(n) HandMorph -16r28E8 MouseOverHandler>processMouseOver: 16r2D08BC8: a(n) MouseOverHandler -16r28B8 HandMorph>processEvents 16rC85548: a(n) HandMorph -16r2898 [] in WorldState>doOneCycleNowFor: 16r126DFF8: a(n) WorldState -16r2870 Array(SequenceableCollection)>do: 16r434190: a(n) Array -16r2850 WorldState>handsDo: 16r126DFF8: a(n) WorldState -16r282C WorldState>doOneCycleNowFor: 16r126DFF8: a(n) WorldState -16r280C WorldState>doOneCycleFor: 16r126DFF8: a(n) WorldState -16r2330 WorldState>doOneSubCycleFor: 16r126DFF8: a(n) WorldState -16r2310 PasteUpMorph>doOneSubCycle 16r898788: a(n) PasteUpMorph -16r22E8 [] in FillInTheBlankMorph(DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph -16r22C8 UndefinedObject(Object)>in: 16r41A280: a(n) UndefinedObject -16r22A0 [] in FillInTheBlankMorph(DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph -16r2280 UndefinedObject(Object)>in: 16r41A280: a(n) UndefinedObject -16r2254 FillInTheBlankMorph(DialogWindow)>getUserResponse 16r9A498: a(n) FillInTheBlankMorph -16r2234 FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld:onCancelReturn:acceptOnCR:answerExtent: 16r12232B8: a(n) FillInTheBlankMorph class -16r21FC FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld:onCancelReturn:acceptOnCR: 16r12232B8: a(n) FillInTheBlankMorph class -16r21C8 FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld:onCancelReturn: 16r12232B8: a(n) FillInTheBlankMorph class -16r2198 FillInTheBlankMorph class>request:initialAnswer:centerAt:inWorld: 16r12232B8: a(n) FillInTheBlankMorph class -16r216C FillInTheBlankMorph class>request:initialAnswer:centerAt: 16r12232B8: a(n) FillInTheBlankMorph class -16r2144 FillInTheBlankMorph class>request:initialAnswer: 16r12232B8: a(n) FillInTheBlankMorph class -16r2120 MorphicUIManager>request:initialAnswer: 16r821990: a(n) MorphicUIManager -16r20F8 SmalltalkImage>getFileNameFromUserSuggesting: 16r79FC80: a(n) SmalltalkImage -16r20D8 SmalltalkImage>getFileNameFromUser 16r79FC80: a(n) SmalltalkImage -16r20B8 SmalltalkImage>saveAs 16r79FC80: a(n) SmalltalkImage -16r209C TheWorldMainDockingBar>saveImageAs 16r739530: a(n) TheWorldMainDockingBar -16r2078 [] in MenuItemMorph>invokeWithEvent: 16r16E7B60: a(n) MenuItemMorph -16r2054 BlockClosure>ensure: 16r9DC50: a(n) BlockClosure -16r2030 CursorWithMask(Cursor)>showWhile: 16r70B1C0: a(n) CursorWithMask -16r200C MenuItemMorph>invokeWithEvent: 16r16E7B60: a(n) MenuItemMorph scavenging(676)...scavenging(677)...scavenging(678)...scavenging(679)...scavenging(680)...scavenging(681)...scavenging(682)...
and so on.
It seems that doBubblingForFocusEvent:with hides a /lot/ of computation. I wonder if the system might be more responsive if this were to receive some attention. _,,,^..^,,,_ best, Eliot