【发布时间】:2013-08-20 10:24:33
【问题描述】:
我刚刚将我的 V8 版本升级到 3.20.16(从一些非常旧的版本)。我不能再使用了
Handle<Object> obj /* = ... */;
Persistent<Object> p = Persistent<Object>::New( obj );
创建一个对象的持久句柄。编译器建议改用static T* v8::Persistent<T>::New(v8::Isolate*, T*) [with T = v8::Object]。但是,如果我将代码更改为
Handle<Object> obj /* = ... */;
Persistent<Object> p = Persistent<Object>::New( Isolate::GetCurrent(), *obj );
编译器抱怨这个函数是私有的。现在如何从普通的Handle<Object> 创建Persistent<Object> 句柄?
我在谷歌上搜索过,唯一发现的是文档似乎相互矛盾:
- https://developers.google.com/v8/embed#handles 表示现在使用 Persistence 构造函数创建持久句柄
-
http://bespin.cz/~ondras/html/classv8_1_1Persistent.html 表示
Persistence<T>::New仍然是要走的路
提前感谢您的帮助
【问题讨论】:
标签: v8 embedded-v8