本文整理汇总了C++中ObjectData::isInstance方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectData::isInstance方法的具体用法?C++ ObjectData::isInstance怎么用?C++ ObjectData::isInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjectData
的用法示例。
在下文中一共展示了ObjectData::isInstance方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: objOffsetUnset
void objOffsetUnset(TypedValue* base, CVarRef offset) {
objArrayAccess(base);
static StringData* sd__offsetUnset
= StringData::GetStaticString("offsetUnset");
ObjectData* obj = base->m_data.pobj;
if (LIKELY(obj->isInstance())) {
Instance* instance = static_cast<Instance*>(obj);
const Func* method = instance->methodNamed(sd__offsetUnset);
ASSERT(method != NULL);
TypedValue tv;
tvWriteUninit(&tv);
instance->invokeUserMethod(&tv, method, CREATE_VECTOR1(offset));
tvRefcountedDecRef(&tv);
} else {
tvAsVariant(base).getArrayAccess()
->o_invoke(sd__offsetUnset, CREATE_VECTOR1(offset));
}
}
示例2: objOffsetExists
bool objOffsetExists(TypedValue* base, CVarRef offset) {
objArrayAccess(base);
TypedValue tvResult;
tvWriteUninit(&tvResult);
static StringData* sd__offsetExists
= StringData::GetStaticString("offsetExists");
ObjectData* obj = base->m_data.pobj;
if (LIKELY(obj->isInstance())) {
Instance* instance = static_cast<Instance*>(obj);
const Func* method = instance->methodNamed(sd__offsetExists);
ASSERT(method != NULL);
instance->invokeUserMethod(&tvResult, method, CREATE_VECTOR1(offset));
} else {
tvAsVariant(&tvResult) = tvAsVariant(base).getArrayAccess()
->o_invoke(sd__offsetExists, CREATE_VECTOR1(offset));
}
tvCastToBooleanInPlace(&tvResult);
return bool(tvResult.m_data.num);
}
示例3: objOffsetGet
TypedValue* objOffsetGet(TypedValue& tvRef, TypedValue* base,
CVarRef offset, bool validate /* = true */) {
if (validate) {
objArrayAccess(base);
}
TypedValue* result;
ObjectData* obj = base->m_data.pobj;
if (LIKELY(obj->isInstance())) {
Instance* instance = static_cast<Instance*>(obj);
static StringData* sd__offsetGet = StringData::GetStaticString("offsetGet");
const Func* method = instance->methodNamed(sd__offsetGet);
ASSERT(method != NULL);
instance->invokeUserMethod(&tvRef, method, CREATE_VECTOR1(offset));
result = &tvRef;
} else {
tvAsVariant(&tvRef)
= tvAsVariant(base).getArrayAccess()->___offsetget_lval(offset);
result = &tvRef;
}
return result;
}