Code: Select all
TYPE
CloseNotifier = POINTER TO RECORD (Sequencers.Notifier)
text: TextModels.Model
END;
VAR
cNotif: CloseNotifier;
myText: TextModels.Model;
PROCEDURE (c: CloseNotifier) Notify (VAR msg: Sequencers.Message);
BEGIN
IF c.text = myText THEN myText := NIL END
END Notify;
...
v := TextViews.dir.New (myText);
Views.OpenAux (v, 'My document name');
NEW (cNotif); cNotif.text := myText;
v.Domain ().GetSequencer ()(Sequencers.Sequencer).InstallNotifier (cNotif)
This works fine, but the problem is if I unload the Module, then close the Window, I get an "illegal execution (adr = 688E98C9H)" TRAP.
This chain of events only happens during development, so is not much of a problem. However is any "illegal execution" of this type a violation of BlackBox's claim to be a safe programming environment?