本文整理汇总了C++中Persistent::DeleteHiddenValue方法的典型用法代码示例。如果您正苦于以下问题:C++ Persistent::DeleteHiddenValue方法的具体用法?C++ Persistent::DeleteHiddenValue怎么用?C++ Persistent::DeleteHiddenValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Persistent
的用法示例。
在下文中一共展示了Persistent::DeleteHiddenValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
/* called by the Java environment for objects that have been finalized */
void Conv::releaseV8Handle(JNIEnv *jniEnv, Persistent<Object> val, int type) {
HandleScope scope;
Handle<String> sHiddenKey;
Interface *interface = 0;
ArrayType *arr = 0;
if(type == -1) {
sHiddenKey = sObjectHiddenKey;
} else if(isArray(type)) {
arrayConv->GetRefsForComponentType(jniEnv, getComponentType(type), &arr);
sHiddenKey = arr->getHiddenKey();
} else if(isInterface(type)) {
interface = env->getInterface(getClassId(type));
sHiddenKey = interface->getHiddenKey();
}
//LOGV("releaseV8Handle; interface = %p; getting hidden value; sHiddenKey = %p\n", interface, sHiddenKey);
if(!sHiddenKey.IsEmpty()) {
Local<Value> hiddenVal = val->GetHiddenValue(sHiddenKey);
if(!hiddenVal.IsEmpty() && !hiddenVal->IsUndefined()) {
jobject extRef = (jobject)External::Unwrap(hiddenVal);
Conv::deleteGlobalRef(jniEnv, extRef);
val->DeleteHiddenValue(sHiddenKey);
if(interface) {
while((interface = interface->getParent())) {
val->DeleteHiddenValue(interface->getHiddenKey());
}
}
}
}
val.Dispose();
}