当前位置: 首页>>代码示例>>C++>>正文


C++ ActRec::getExtraArgs方法代码示例

本文整理汇总了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");
  }
}
开发者ID:hashaash,项目名称:hiphop-php,代码行数:32,代码来源:ext_function.cpp


注:本文中的ActRec::getExtraArgs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。