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?