Ok! Laurent can you fix profStef? Stef On Jan 31, 2011, at 6:41 PM, Alain Plantec wrote:
I do not understand why but it looks really a problem with text selection It's not a problem with text selection. The problem is that profStef next changes the contents of the morph (with setText:). Nothing anormal here but, while doing so it kills the editor from where the selection is evaluated. See the portion of #evaluateSelection given below:
evaluateSelection ... result := [ rcvr class evaluatorClass new evaluate: self selectionForDoitAsStream in: ctxt to: rcvr notifying: self <------***** the problem is here ***** ifFail: [FakeClassPool adopt: nil. ^ #failedDoit] logged: true. ] ... ----------------- The receiver is passed as the requestor and it is bad because after the selection has been evaluated, the receiver is destroyed by the #setText: and a new editor is built. After having evaluated the selection, the compiler sends several messages to the requestor. Then it crashes because the requestor is destroyed by the evaluation ... :) So the solution is to set the editor morph as the requestor (which is stable), not the editor.
Cheers Alain