Когда объект C ++, доступный для v8, удаляется, как я могу сделать недействительными дескрипторы, которые могут указывать на этот объект.
Я использую v8 в качестве интерфейса сценариев для более крупного приложения.Объекты в более крупном приложении оборачиваются и доступны в v8 с использованием класса ObjectWrap узла.
Проблема заключается в том, что время жизни обернутых объектов ограничено.Если в javascript я выполняю что-то вроде:
var win = app.getWindow();
win.close(); // The C++ object that win references goes away
console.log(win.width()); // This should fail.
, я хочу, чтобы он вел себя так, как говорится в комментариях.После win.close () (или какого-либо другого события, возможно, вне контроля JS) любой доступ к win или дублированному дескриптору должен завершиться сбоем.
В настоящее время я должен пометить обернутый объект C ++ как недействительный и проверитьдопустимость при каждом вызове метода.Это единственный способ сделать это, или есть способ пометить дескриптор как недействительный?