Short: Separate Programs from Blueprints Date: Thu, 2 Nov 2000 10:12:23 +0100 (MET) From: Fini Jastrow <mud@hurrikap.rz.uni-leipzig.de> --- A way to prevent this scenario would be to keep a list of all programs. But that would mean that blueprints and programs are no longer identical. Hallo Mateese! Nein, ich bin noch nichtmal dazu gekommen auch nur in den Regexp-Code zu schauen. Zum Thema: Wenn eine nomask Funktion mehrfach virtuell ererbt wird, wirft das ja (seit neuem) keinen Fehler mehr. Das klappt auch ganz wunderbar. Ein Problem entsteht nur, wenn die Vererbung nicht ganz direkt ist, und diese nomask Funktion 'in der Zwischenzeit' neu geladen wurde - also im Driver auf eine andere Funktion zeigt, obwohl der 'vollspezifizierte' Name derselbe ist. Beispiel: 'Normalzustand' 'Fehlerzustand' A A / \ / \ / \ / \ B C B C \ / | | \ / | | D D1 D2 Den Fehlerzustand kann man zB erreichen durch: C laden (laed D implizit), D zerstoeren, B laden (laed D implizit). Nun gibt es zwei eigentlich gleiche Funktionen, die aber verschiedenen Funktionszeiger haben: in C nomask D::fun() --- aber eigentlich nomask D2:fun() in B nomask D::fun() --- aber eigentlich nomask D1:fun() Auf jeden Fall wirft es dann 'ploetzlich' irgenwann im Betrieb einen Fehler (nomask zweimal inheritet). Ich weiss nicht, ob man das so aendern kann, dass es trotzdem geht, ansonsten sollte das in der Docu erwaehnt werden denke ich - und eigentlich ist die Faehigkeit dann mehr oder weniger sinnlos, weil nicht wirklich sicher benutzbar. Hmm, was mir gerade einfaellt... ich weiss gar nicht, ob 'virtual' ueberhaupt in diesem Zustand geht, also ob D1 und D2 nur einen Variablenraum, haben. Ich werde das gleich mal nachsehen (wenn ich Zeit finde), wenn du willst schicke ich dir die Ergebnisse, sonst will ich dich nicht mit einer weiteren Mail stoeren. *knuddels* und alles Gute aus Hamburg, Fiona @ Wunderland