Christoph Thiede uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1641.mcz ==================== Summary ==================== Name: Morphic-ct.1641 Author: ct Time: 7 June 2020, 2:45:17.536284 pm UUID: b90e23e1-ce70-3d49-a8e4-f09af148ef97 Ancestors: Morphic-ct.1638 Refine #isHighFrequentEvent implementation for further event types. Fixes one possible cause of the "color depth = 0" bug. See http://forum.world.st/Image-not-startable-after-save-td5117084.html. Depends indeed on Morphic-ct.1638. =============== Diff against Morphic-ct.1638 =============== Item was added: + ----- Method: DropEvent>>isHighFrequentEvent (in category 'testing') ----- + isHighFrequentEvent + + ^ false! Item was added: + ----- Method: WindowEvent>>isHighFrequentEvent (in category 'testing') ----- + isHighFrequentEvent + + ^ (#(windowClose) includes: self type) not! Item was changed: ----- Method: WorldState>>doSafely:onErrorThat:setErrorFlag:ifFatal:afterErrorDo: (in category 'update cycle') ----- doSafely: aBlock onErrorThat: errorPredicate setErrorFlag: errorFlag ifFatal: fatalErrorBlock afterErrorDo: postErrorBlock "Evaluate aBlock and keep track of errors during morph invocations." | finished classesWithErrors | finished := false. classesWithErrors := IdentitySet new. [finished] whileFalse: [ [aBlock value. finished := true] on: Error, Halt, Warning do: [:ex | | err rcvr errCtxt errMorph | (errorPredicate cull: ex) ifFalse: [ex pass]. err := ex description. rcvr := ex receiver. errCtxt := thisContext. [ errCtxt := errCtxt sender. "Search the sender chain to find the morph causing the problem" [errCtxt notNil and: [(errCtxt receiver isMorph) not]] whileTrue: [errCtxt := errCtxt sender]. "If we're at the root of the context chain then we have a fatal problem" errCtxt ifNil: [^ fatalErrorBlock cull: err]. + errMorph := errCtxt receiver + ] doWhileTrue: [ - errMorph := errCtxt receiver. "If the morph causing the problem has already the error flag set, then search for the next morph above in the caller chain." errMorph hasProperty: errorFlag + ]. - ] whileTrue. errMorph setProperty: errorFlag toValue: true; changed. "Catch all errors, one for each receiver class." (classesWithErrors includes: rcvr class) ifFalse: [ classesWithErrors add: rcvr class. ToolSet debugException: ex]. postErrorBlock cull: err. ]].! Item was changed: ----- Method: WorldState>>processEventsSafely: (in category 'update cycle') ----- processEventsSafely: aHandMorph ^ self doSafely: [aHandMorph processEvents] + onErrorThat: [:error | self currentEvent ifNil: [true] ifNotNil: [:evt | evt isHighFrequentEvent]] - onErrorThat: [:error | ActiveEvent isNil or: [ActiveEvent isHighFrequentEvent]] setErrorFlag: #errorOnEvent ifFatal: [:error | Project current fatalEventHandlingError: error] afterErrorDo: []! |
Hi Christoph, can you point me to the prior inbox artifacts and list discussions/comments about this "safe event processing"? I would really like to take a look at it. Having some safety net for broken #mouseOver: handlers similar to #displayWorldSafely: would really help debugging. Best, Marcel
|
Hi Marcel,
thank you! :-)
Discussion: http://forum.world.st/bug-in-a-ToolBuilder-Squeak5-3rc2-td5112536.html#a5112551
Everything: http://forum.world.st/template/NamlServlet.jtp?macro=search_page&node=45488&query=doSafely&sort=date ;-)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Montag, 8. Juni 2020 11:52:32 An: squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1641.mcz
Hi Christoph,
can you point me to the prior inbox artifacts and list discussions/comments about this "safe event processing"? I would really like to take a look at it. Having some safety net for broken #mouseOver: handlers similar to #displayWorldSafely: would really
help debugging.
Best,
Marcel
Carpe Squeak!
|
> Everything: http://forum.world.st/template/NamlServlet.jtp?macro=search_page&node=45488&query=doSafely&sort=date ;-) Are those just pointers to your commit messages? Best, Marcel
|
Hi Marcel, hi all,
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Montag, 8. Juni 2020 12:07 Uhr An: squeak-dev Betreff: Re: [squeak-dev] The Inbox: Morphic-ct.1641.mcz
> Everything: http://forum.world.st/template/NamlServlet.jtp?macro=search_page&node=45488&query=doSafely&sort=date ;-)
Are those just pointers to your commit messages?
Best,
Marcel
Carpe Squeak!
|
Free forum by Nabble | Edit this page |