Für mein Script API muss ich halt sicher gehen, dass die Scriptautoren nichts böses machen können, da darf die Anwendung auch nicht crashen, wenn er das Verbindungsobjekt behält und damit arbeitet, aber das Signal schon zerstört wurde. Mit meinem momentanen Aufbau ist das ja kein Problem.Quote:
Es ist also für eine Programmiersprache? Das ist dann ein anderes Thema. Ich kenne Lua nicht, wenn es aber schwach typisiert ist und eine automatische Speicherverwaltung sein Eigen nennt, müsste doch eigentlich irgendwo eine Referenz "hängen bleiben" und somit verhindern, dass deine Rückruf-Funktionen verworfen wird. Du müsstest dann doch nur noch testen, ob es wirklich Funktionen ist. Damit ist Rückrufen Genüge getan. Zumindest, wenn Lua die Verbindungen nicht selbst verwalten darf... Aber auch dann unterstützt deine Signal-Bibliothek das momentan nicht hinreichend, dass etwas kaputtgehen könnte - weder durch Lua, noch durch irgendjemanden sonst.
Angenommen, deine Verbindungen haben keinen intelligenten Zeiger oder eine sonstige Sicherungsmethode. Solange du mit deinen Signalen umgehst, wird das aber auch nur dann gefährlich, wenn du Lua die Kontrolle über Verbindungsobjekte übergibst. Diese sollten schließlich nur in dem Kontext eines Signals vorkommen und nicht darüber hinaus am Leben gelassen werden.
Das mache ich gerne, es würde mich freuen, geholfen zu haben.
Das war der 31.10., oder?
Ich warte einfach drauf bis MS mal Dreamspark aktualisiert. Da ist noch kein RTM drin. Der Launch von VS13 ist glaub ich irgendwann im November, aber RTM = Release... :D
boost::signals2 ist momentan nichtmal lauffähig unter VS2013, da es noch nen Compiler Bug gibt. Der MS Compiler bevorzugt nämlich variadische Template Überladungen vor einfachen Templates.
[Only registered and activated users can see links. Click Here To Register...]