本文整理汇总了C++中ActRec::getExtraArgs方法的典型用法代码示例。如果您正苦于以下问题:C++ ActRec::getExtraArgs方法的具体用法?C++ ActRec::getExtraArgs怎么用?C++ ActRec::getExtraArgs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ActRec
的用法示例。
在下文中一共展示了ActRec::getExtraArgs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: f_func_get_arg
Variant f_func_get_arg(int arg_num) {
if (hhvm) {
CallerFrame cf;
ActRec* ar = cf();
if (ar == NULL || arg_num < 0 || arg_num >= ar->numArgs()) {
return false;
}
int numParams = ar->m_func->numParams();
if (arg_num < numParams) {
// Formal parameter. Value is on the stack.
TypedValue* loc =
(TypedValue*)(uintptr_t(ar) - (arg_num + 1) * sizeof(TypedValue));
return tvAsVariant(loc);
}
// Not a formal parameter. Value is in the ExtraArgs.
int extraArgNum = arg_num - numParams;
HPHP::VM::ExtraArgs* eArgs = ar->getExtraArgs();
int extraArgs = (eArgs ? eArgs->numExtraArgs() : 0);
if (extraArgNum < extraArgs) {
return tvAsVariant(eArgs->getExtraArg(extraArgNum));
}
return false;
} else {
throw FatalErrorException("bad HPHP code generation");
}
}