void c_Continuation::t_next() { INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::next); const_assert(!hhvm); preNext(); m_received.setNull(); nextImpl(fi); }
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; }
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); }
HphpArray* c_GenericContinuation::getStaticLocals() { const_assert(hhvm); if (m_VMStatics.get() == NULL) { m_VMStatics = NEW(HphpArray)(1); } return m_VMStatics.get(); }
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); }
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 }
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; }
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; }
Variant c_Continuation::t_current() { INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::current); const_assert(!hhvm); nextCheck(); return m_value; }
Object c_WaitHandle::t_getwaithandle() { const_assert(false); }
void c_Continuation::t_raise(CVarRef v) { const_assert(false); }
Variant c_Continuation::t_current() { const_assert(false); return m_value; }
bool c_Continuation::t_valid() { const_assert(false); return !done(); }
void c_Continuation::t_send(CVarRef v) { const_assert(false); }
c_Closure::c_Closure(const ObjectStaticCallbacks *cb) : ExtObjectData(cb) { const_assert(!hhvm); throw_fatal("Cannot explicitly instantiate and/or subclass Closure"); }
void c_Continuation::t_next() { const_assert(false); }
bool c_Continuation::t_valid() { INSTANCE_METHOD_INJECTION_BUILTIN(Continuation, Continuation::valid); const_assert(!hhvm); return !m_done; }
// Functions with native implementation. void c_Generator::t_next() { const_assert(false); }
ObjectData* SystemLib::AllocPinitSentinel() { const_assert(hhvm); return HPHP::VM::Instance::newInstance(SystemLib::s_pinitSentinelClass); }
Variant c_Generator::t_current() { const_assert(false); }
bool c_Generator::t_valid() { const_assert(false); }
void c_Generator::t_raise(const Variant& v) { const_assert(false); }
void c_Generator::t_send(const Variant& v) { const_assert(false); }
void c_Continuation::t_raise(const Variant& v) { const_assert(false); }
bool CmdVariable::onServerVM(DebuggerProxy *proxy) { const_assert(hhvm); m_variables = g_vmContext->getLocalDefinedVariables(m_frame); return proxy->send(this); }
Variant c_Generator::t_key() { const_assert(false); }
Variant c_Continuation::t_current() { const_assert(false); return tvAsCVarRef(&m_value); }