Ejemplo n.º 1
0
Func* Func::clone() const {
  Func* f = new (allocFuncMem(
        m_name,
        m_numParams,
        isClosureBody() || isGeneratorFromClosure()
  )) Func(*this);
  f->initPrologues(m_numParams, isGenerator());
  f->m_funcId = InvalidFuncId;
  return f;
}
Ejemplo n.º 2
0
Archivo: func.cpp Proyecto: BwRy/hhvm
Func* Func::clone(Class* cls, const StringData* name) const {
  auto numParams = this->numParams();
  Func* f = new (allocFuncMem(
                   m_name,
                   numParams,
                   isClosureBody(),
                   cls || !preClass())) Func(*this);

  f->initPrologues(numParams);
  f->m_funcId = InvalidFuncId;
  if (name) {
    f->m_name = name;
  }
  if (cls != f->m_cls) {
    f->m_cls = cls;
  }
  f->setFullName(numParams);
  f->m_profCounter = 0;
  return f;
}
Ejemplo n.º 3
0
Func* Func::clone() const {
  Func* f = new (allocFuncMem(m_name, m_numParams)) Func(*this);
  f->initPrologues(m_numParams);
  f->m_funcId = InvalidId;
  return f;
}