void c_Continuation::t_next() {
  INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::next);
  const_assert(!hhvm);
  preNext();
  m_received.setNull();
  nextImpl(fi);
}
Example #2
0
void c_Continuation::t_send(CVarRef v) {
  INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::send);
  const_assert(!hhvm);
  nextCheck();
  m_received.assignVal(v);
  nextImpl(fi);
}
inline void c_Continuation::nextImpl(FI& fi) {
  const_assert(!hhvm);
  ASSERT(m_running);
  try {
    if (m_isMethod) {
      MethodCallPackage mcp;
      mcp.isObj = m_obj.get();
      if (mcp.isObj) {
        mcp.obj = mcp.rootObj = m_obj.get();
      } else {
        mcp.rootCls = getCalledClass().get();
      }
      fi.setStaticClassName(getCalledClass());
      (m_callInfo->getMeth1Args())(mcp, 1, this);
    } else {
      (m_callInfo->getFunc1Args())(NULL, 1, this);
    }
  } catch (Object e) {
    if (e.instanceof("exception")) {
      m_running = false;
      m_done = true;
      m_value.setNull();
      throw_exception(e);
    } else {
      throw;
    }
  }
  m_running = false;
}
Example #4
0
void c_Continuation::t_raise(CVarRef v) {
  INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::raise);
  const_assert(!hhvm);
  nextCheck();
  m_received.assignVal(v);
  m_should_throw = true;
  nextImpl(fi);
}
Example #5
0
HphpArray* c_GenericContinuation::getStaticLocals() {
  const_assert(hhvm);
  if (m_VMStatics.get() == NULL) {
    m_VMStatics = NEW(HphpArray)(1);
  }

  return m_VMStatics.get();
}
Example #6
0
void Debugger::InterruptVMHook(int type /* = BreakPointReached */,
                               CVarRef e /* = null_variant */) {
  const_assert(hhvm);
  InterruptSiteVM site(type == HardBreakPoint, e);
  if (!site.valid()) {
    return;
  }
  Interrupt(type, NULL, &site);
}
Example #7
0
bool CmdEval::onServerVM(DebuggerProxy *proxy) {
  const_assert(hhvm);
  VM::PCFilter* locSave = g_vmContext->m_lastLocFilter;
  g_vmContext->m_lastLocFilter = new VM::PCFilter();
  g_vmContext->setDebuggerBypassCheck(m_bypassAccessCheck);
  DebuggerProxyVM::ExecutePHP(m_body, m_output, !proxy->isLocal(), m_frame);
  g_vmContext->setDebuggerBypassCheck(false);
  delete g_vmContext->m_lastLocFilter;
  g_vmContext->m_lastLocFilter = locSave;
  return proxy->send(this);
}
HphpArray* c_Continuation::getStaticLocals() {
  const_assert(hhvm);
#ifdef HHVM
  if (m_VMStatics.get() == NULL) {
    m_VMStatics = NEW(HphpArray)(1);
  }
  return m_VMStatics.get();
#else
  return NULL;
#endif
}
Example #9
0
Array CmdVariable::GetLocalVariables(FrameInjection* frame, bool &global) {
  const_assert(!hhvm);
  Array ret;
  if (!frame || FrameInjection::IsGlobalScope(frame)) {
    global = true;
    ret = GetGlobalVariables();
  } else {
    global = false;
  }
  return ret;
}
Example #10
0
inline void c_Continuation::nextImpl(FI& fi) {
  const_assert(!hhvm);
  preNext();
  try {
    if (m_isMethod) {
      MethodCallPackage mcp;
      mcp.isObj = hhvm || m_obj.get();
      if (mcp.isObj) {
        mcp.obj = mcp.rootObj = m_obj.get();
      } else {
        mcp.rootCls = m_called_class.get();
      }
      mcp.extra = m_extra;
      if (!hhvm) {
        fi.setStaticClassName(m_called_class);
      }
      (m_callInfo->getMeth1Args())(mcp, 1, this);
    } else {
      if (hhvm) {
        MethodCallPackage mcp;
        mcp.isObj = false;
        mcp.obj = mcp.rootObj = NULL;
        mcp.extra = m_extra;
        (m_callInfo->getMeth1Args())(mcp, 1, this);
      } else {
        (m_callInfo->getFunc1Args())(m_extra, 1, this);
      }
    }
  } catch (Object e) {
    if (e.instanceof("exception")) {
      m_running = false;
      m_done = true;
      throw_exception(e);
    } else {
      throw;
    }
  }
  m_running = false;
}
Example #11
0
Variant c_Continuation::t_current() {
  INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::current);
  const_assert(!hhvm);
  nextCheck();
  return m_value;
}
Example #12
0
Object c_WaitHandle::t_getwaithandle() {
  const_assert(false);
}
Example #13
0
void c_Continuation::t_raise(CVarRef v) {
  const_assert(false);
}
Example #14
0
Variant c_Continuation::t_current() {
  const_assert(false);
  return m_value;
}
Example #15
0
bool c_Continuation::t_valid() {
  const_assert(false);
  return !done();
}
Example #16
0
void c_Continuation::t_send(CVarRef v) {
  const_assert(false);
}
Example #17
0
c_Closure::c_Closure(const ObjectStaticCallbacks *cb) : ExtObjectData(cb) {
  const_assert(!hhvm);
  throw_fatal("Cannot explicitly instantiate and/or subclass Closure");
}
Example #18
0
void c_Continuation::t_next() {
  const_assert(false);
}
Example #19
0
bool c_Continuation::t_valid() {
  INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::valid);
  const_assert(!hhvm);
  return !m_done;
}
Example #20
0
// Functions with native implementation.
void c_Generator::t_next() { const_assert(false); }
Example #21
0
ObjectData* SystemLib::AllocPinitSentinel() {
  const_assert(hhvm);
  return HPHP::VM::Instance::newInstance(SystemLib::s_pinitSentinelClass);
}
Example #22
0
Variant c_Generator::t_current() { const_assert(false); }
Example #23
0
bool c_Generator::t_valid() { const_assert(false); }
Example #24
0
void c_Generator::t_raise(const Variant& v) { const_assert(false); }
Example #25
0
void c_Generator::t_send(const Variant& v) { const_assert(false); }
Example #26
0
void c_Continuation::t_raise(const Variant& v) {
  const_assert(false);
}
Example #27
0
bool CmdVariable::onServerVM(DebuggerProxy *proxy) {
  const_assert(hhvm);
  m_variables = g_vmContext->getLocalDefinedVariables(m_frame);
  return proxy->send(this);
}
Example #28
0
Variant c_Generator::t_key() { const_assert(false); }
Example #29
0
Variant c_Continuation::t_current() {
  const_assert(false);
  return tvAsCVarRef(&m_value);
}