/* SRC: classes/splobjectstorage.php line 140 */ void c_SplObjectStorage::t_detach(CVarRef v_obj) { INSTANCE_METHOD_INJECTION_BUILTIN(SplObjectStorage, SplObjectStorage::detach); Primitive v_idx = 0; Variant v_object; ObjectData *obj_tmp UNUSED; if (x_is_object(v_obj)) { { { LOOP_COUNTER(1); Variant map2 = m_storage; for (ArrayIter iter3 = map2.begin(s_class_name); !iter3.end(); iter3.next()) { LOOP_COUNTER_CHECK(1); iter3.second(v_object); v_idx.assignVal(iter3.first()); { if (same(v_object, v_obj)) { { m_storage.weakRemove(v_idx); { MethodCallPackage mcp0; mcp0.methodCall((GET_THIS_VALID()), NAMSTR(s_sys_ss941ca25f, "rewind"), 0x1670096FDE27AF6ALL); const CallInfo *cit0 ATTRIBUTE_UNUSED = mcp0.ci; (mcp0.bindClass(fi)->getMeth0Args())(mcp0, 0); } return; } } } } } } } }
/* SRC: classes/splobjectstorage.php line 102 */ bool c_SplObjectStorage::t_contains(CVarRef v_obj) { INSTANCE_METHOD_INJECTION_BUILTIN(SplObjectStorage, SplObjectStorage::contains); Variant v_object; ObjectData *obj_tmp UNUSED; if (x_is_object(v_obj)) { { { LOOP_COUNTER(1); Variant map2 = m_storage; for (ArrayIter iter3 = map2.begin(s_class_name); !iter3.end(); iter3.next()) { LOOP_COUNTER_CHECK(1); iter3.second(v_object); { if (same(v_object, v_obj)) { { return true; } } } } } } } return false; }
void DoWhileStatement::eval(VariableEnvironment &env) const { if (env.isGotoing() && env.isLimitedGoto()) return; ENTER_STMT; DECLARE_THREAD_INFO; LOOP_COUNTER(1); do { LOOP_COUNTER_CHECK_INFO(1); EVAL_STMT_HANDLE_GOTO_BEGIN(restart); if (m_body) EVAL_STMT_HANDLE_BREAK(m_body, env); EVAL_STMT_HANDLE_GOTO_END(restart); } while (m_cond->eval(env)); }
void ForStatement::eval(VariableEnvironment &env) const { ENTER_STMT; DECLARE_THREAD_INFO; LOOP_COUNTER(1); for (Expression::evalVector(m_init, env); m_cond.empty() ? true : (bool)Expression::evalVector(m_cond, env); Expression::evalVector(m_next, env)) { LOOP_COUNTER_CHECK(1); if (m_body) { EVAL_STMT_HANDLE_BREAK(m_body, env); } } }
/* SRC: classes/exception.php line 123 */ String c_Exception::t_gettraceasstring() { INSTANCE_METHOD_INJECTION_BUILTIN(Exception, Exception::getTraceAsString); int64 v_i = 0; String v_s; Variant v_frame; v_i = 0LL; v_s = NAMSTR(s_sys_ss00000000, ""); { LOOP_COUNTER(1); Variant map2 = t_gettrace(); { StringBuffer tmp_sbuf_v_s(512); for (ArrayIter iter3 = map2.begin(s_class_name); !iter3.end(); iter3.next()) { LOOP_COUNTER_CHECK(1); iter3.second(v_frame); { if (!(x_is_array(v_frame))) { continue; } { tmp_sbuf_v_s.appendWithTaint("#", 1); tmp_sbuf_v_s.appendWithTaint(toString(v_i)); tmp_sbuf_v_s.appendWithTaint(" ", 1); tmp_sbuf_v_s.appendWithTaint(toString((isset(v_frame, NAMSTR(s_sys_ss8ce7db5b, "file"), true) ? ((Variant)(v_frame.rvalAt(NAMSTR(s_sys_ss8ce7db5b, "file"), AccessFlags::Error_Key))) : ((Variant)(NAMSTR(s_sys_ss00000000, "")))))); tmp_sbuf_v_s.appendWithTaint("(", 1); tmp_sbuf_v_s.appendWithTaint(toString((isset(v_frame, NAMSTR(s_sys_ssddf8728c, "line"), true) ? ((Variant)(v_frame.rvalAt(NAMSTR(s_sys_ssddf8728c, "line"), AccessFlags::Error_Key))) : ((Variant)(NAMSTR(s_sys_ss00000000, "")))))); tmp_sbuf_v_s.appendWithTaint("): ", 3); Variant tmp0; if (isset(v_frame, NAMSTR(s_sys_ssc82dbd12, "class"), true)) { const String &tmp1((toString(v_frame.rvalAt(NAMSTR(s_sys_ssc82dbd12, "class"), AccessFlags::Error_Key)))); const String &tmp2((toString(v_frame.rvalAt(NAMSTR(s_sys_ss724a760a, "type"), AccessFlags::Error_Key)))); tmp0 = (concat(tmp1, tmp2)); } else { tmp0 = (NAMSTR(s_sys_ss00000000, "")); } tmp_sbuf_v_s.appendWithTaint(toString(tmp0)); tmp_sbuf_v_s.appendWithTaint(toString(v_frame.rvalAt(NAMSTR(s_sys_ss52403931, "function"), AccessFlags::Error_Key))); tmp_sbuf_v_s.appendWithTaint("()\n", 3); ; } v_i++; } } concat_assign(v_s, tmp_sbuf_v_s.detachWithTaint()); } } concat_assign(v_s, concat3(NAMSTR(s_sys_ss8dc355aa, "#"), toString(v_i), NAMSTR(s_sys_ssfab32402, " {main}"))); return v_s; }
void ForEachStatement::eval(VariableEnvironment &env) const { if (env.isGotoing()) return; ENTER_STMT; DECLARE_THREAD_INFO; LOOP_COUNTER(1); Variant map(m_source->eval(env)); if (m_key) { TempExpressionList *texp = m_key->cast<TempExpressionList>(); if (texp) { for (ArrayIter iter = map.begin(env.currentContext(), true); !iter.end(); iter.next()) { { LOOP_COUNTER_CHECK_INFO(1); const Variant &value = iter.second(); const Variant &key = iter.first(); TempExpressionHelper helper(texp, env); m_value->set(env, value); texp->setImpl(env, key); } if (!m_body) continue; EVAL_STMT_HANDLE_GOTO_BEGIN(restart1); EVAL_STMT_HANDLE_BREAK(m_body, env); EVAL_STMT_HANDLE_GOTO_END(restart1); } } else { for (ArrayIter iter = map.begin(env.currentContext(), true); !iter.end(); iter.next()) { LOOP_COUNTER_CHECK_INFO(1); const Variant &value = iter.second(); const Variant &key = iter.first(); m_value->set(env, value); m_key->set(env, key); if (!m_body) continue; EVAL_STMT_HANDLE_GOTO_BEGIN(restart2); EVAL_STMT_HANDLE_BREAK(m_body, env); EVAL_STMT_HANDLE_GOTO_END(restart2); } } } else { for (ArrayIter iter = map.begin(env.currentContext(), true); !iter.end(); iter.next()) { LOOP_COUNTER_CHECK_INFO(1); m_value->set(env, iter.second()); if (!m_body) continue; EVAL_STMT_HANDLE_GOTO_BEGIN(restart3); EVAL_STMT_HANDLE_BREAK(m_body, env); EVAL_STMT_HANDLE_GOTO_END(restart3); } } }
/* SRC: classes/splobjectstorage.php line 140 */ void c_SplObjectStorage::t_detach(CVarRef v_obj) { INSTANCE_METHOD_INJECTION_BUILTIN(SplObjectStorage, SplObjectStorage::detach); Primitive v_idx = 0; Variant v_object; ObjectData *obj_tmp UNUSED; if (x_is_object(v_obj)) { { { LOOP_COUNTER(1); ArrayIter iter3; { Variant map2 = m_storage; iter3.begin(map2, s_class_name); try { if (iter3.end()) goto break1; } catch (...) { iter3.reset(); throw; } } do { LOOP_COUNTER_CHECK(1); iter3.second(v_object); v_idx.assignVal(iter3.first()); { if (same(v_object, v_obj)) { { m_storage.weakRemove(v_idx); { MethodCallPackage mcp0; mcp0.methodCall((GET_THIS_VALID()), NAMSTR(s_sys_ss745e29f6, "rewind"), 0x4D5C8831); const CallInfo *cit0 ATTRIBUTE_UNUSED = mcp0.ci; (mcp0.bindClass(fi)->getMeth0Args())(mcp0, 0); } return; } } } } while(iter3.next(), !iter3.end()); break1:; } } } }
/* preface finishes */ Variant pm_php$run_php(bool incOnce /* = false */, LVariableTable* variables /* = NULL */, Globals *globals /* = get_globals() */) { PSEUDOMAIN_INJECTION(run_init::run.php, pm_php$run_php); LVariableTable *gVariables __attribute__((__unused__)) = (LVariableTable *)g; Variant &v_an_int __attribute__((__unused__)) = (variables != gVariables) ? variables->get(NAMSTR(s_ss5605b123, "an_int")) : g->GV(an_int); Variant &v_i __attribute__((__unused__)) = (variables != gVariables) ? variables->get(NAMSTR(s_ss1cc5b17e, "i")) : g->GV(i); v_an_int = 0LL; { LOOP_COUNTER(1); for (v_i = 0LL; (less(v_i, 100LL)); v_i++) { LOOP_COUNTER_CHECK(1); { v_an_int += 1LL; } } } return true; } /* function */
void WhileStatement::eval(VariableEnvironment &env) const { DECLARE_THREAD_INFO; if (env.isGotoing()) { if (env.isLimitedGoto()) return; goto body; } ENTER_STMT; LOOP_COUNTER(1); begin: if (m_cond->eval(env)) { body: LOOP_COUNTER_CHECK_INFO(1); EVAL_STMT_HANDLE_GOTO_BEGIN(restart); if (m_body) EVAL_STMT_HANDLE_GOTO(m_body, env); EVAL_STMT_HANDLE_GOTO_END(restart); goto begin; } end:; }
/* SRC: classes/splobjectstorage.php line 102 */ bool c_SplObjectStorage::t_contains(CVarRef v_obj) { INSTANCE_METHOD_INJECTION_BUILTIN(SplObjectStorage, SplObjectStorage::contains); Variant v_object; ObjectData *obj_tmp UNUSED; if (x_is_object(v_obj)) { { { LOOP_COUNTER(1); ArrayIter iter3; { Variant map2 = m_storage; iter3.begin(map2, s_class_name); try { if (iter3.end()) goto break1; } catch (...) { iter3.reset(); throw; } } do { LOOP_COUNTER_CHECK(1); iter3.second(v_object); { if (same(v_object, v_obj)) { { return true; } } } } while(iter3.next(), !iter3.end()); break1:; } } } return false; }
/* SRC: classes/exception.php line 152 */ void c_Exception::t_inittrace() { INSTANCE_METHOD_INJECTION_BUILTIN(Exception, Exception::initTrace); Variant v_top; Variant v_frame; ObjectData *obj_tmp UNUSED; { const CallInfo *cit0 = NULL; MethodCallPackage mcp0; mcp0.staticMethodCall(NAMSTR(s_sys_ssf08d205d, "static"), NAMSTR(s_sys_ssc453e9e9, "getTraceOptions")); mcp0.lateStaticBind(fi.getThreadInfo()); cit0 = mcp0.ci; const Array &tmp1((x_debug_backtrace(toBoolean((cit0->getMeth0Args())(mcp0, 0))))); m_trace = tmp1; } LOOP_COUNTER(1); { while (!(empty(m_trace))) { LOOP_COUNTER_CHECK(1); { { const Variant &tmp0((m_trace.rvalAt(0LL, AccessFlags::Error))); v_top.assignVal(tmp0); } { bool tmp0; { bool tmp1 = ((isset(v_top, NAMSTR(s_sys_ssc82dbd12, "class"), true) && isset(v_top, NAMSTR(s_sys_ss52403931, "function"), true))); if (tmp1) { const String &tmp2((toString(v_top.rvalAt(NAMSTR(s_sys_ssc82dbd12, "class"), AccessFlags::Error_Key)))); int64 tmp3((x_strcasecmp(tmp2, NAMSTR(s_sys_ssae8717ad, "exception")))); tmp1 = (same(tmp3, 0LL)); } bool tmp4 = (tmp1); if (tmp4) { const String &tmp5((toString(v_top.rvalAt(NAMSTR(s_sys_ss52403931, "function"), AccessFlags::Error_Key)))); int64 tmp6((x_strcasecmp(tmp5, NAMSTR(s_sys_ssa26bedd7, "__init__")))); tmp4 = (same(tmp6, 0LL)); } tmp0 = (tmp4); } if (tmp0) { { { const Variant &tmp0((x_array_shift(ref(m_trace)))); v_frame.assignVal(tmp0); } if (isset(v_frame, NAMSTR(s_sys_ss8ce7db5b, "file"), true)) { { const Variant &tmp0((v_frame.rvalAt(NAMSTR(s_sys_ss8ce7db5b, "file"), AccessFlags::Error_Key))); m_file.assignVal(tmp0); } } if (isset(v_frame, NAMSTR(s_sys_ssddf8728c, "line"), true)) { { const Variant &tmp0((v_frame.rvalAt(NAMSTR(s_sys_ssddf8728c, "line"), AccessFlags::Error_Key))); m_line.assignVal(tmp0); } } return; } } } x_array_shift(ref(m_trace)); } } } }
/* SRC: classes/exception.php line 25 */ void c_Exception::t___init__() { INSTANCE_METHOD_INJECTION_BUILTIN(Exception, Exception::__init__); Variant v_top; Variant v_frame; ObjectData *obj_tmp UNUSED; if (toBoolean(m_inited)) { { return; } } m_inited = true; { const Array &tmp0((x_debug_backtrace(false))); m_trace = tmp0; } LOOP_COUNTER(1); { while (!(empty(m_trace))) { LOOP_COUNTER_CHECK(1); { { const Variant &tmp0((m_trace.rvalAt(0LL, AccessFlags::Error))); v_top.assignVal(tmp0); } { bool tmp0; { bool tmp1 = (empty(v_top, NAMSTR(s_sys_ssc82dbd12, "class"), true)); if (!tmp1) { const String &tmp2((toString(v_top.rvalAt(NAMSTR(s_sys_ss52403931, "function"), AccessFlags::Error_Key)))); bool tmp3 = (toBoolean(x_strcasecmp(tmp2, NAMSTR(s_sys_ssa26bedd7, "__init__")))); if (tmp3) { const String &tmp4((toString(v_top.rvalAt(NAMSTR(s_sys_ss52403931, "function"), AccessFlags::Error_Key)))); tmp3 = (toBoolean(x_strcasecmp(tmp4, NAMSTR(s_sys_ssa1b87da7, "__construct")))); } bool tmp5 = (tmp3); if (tmp5) { const String &tmp6((toString(v_top.rvalAt(NAMSTR(s_sys_ss52403931, "function"), AccessFlags::Error_Key)))); const String &tmp7((toString(v_top.rvalAt(NAMSTR(s_sys_ssc82dbd12, "class"), AccessFlags::Error_Key)))); tmp5 = (toBoolean(x_strcasecmp(tmp6, tmp7))); } tmp1 = (tmp5); } bool tmp8 = (tmp1); if (!tmp8) { const String &tmp9((toString(v_top.rvalAt(NAMSTR(s_sys_ssc82dbd12, "class"), AccessFlags::Error_Key)))); bool tmp10 = (toBoolean(x_strcasecmp(tmp9, NAMSTR(s_sys_ssae8717ad, "exception")))); if (tmp10) { const Variant &tmp11((v_top.rvalAt(NAMSTR(s_sys_ssc82dbd12, "class"), AccessFlags::Error_Key))); tmp10 = (!(x_is_subclass_of(tmp11, NAMSTR(s_sys_ssae8717ad, "exception")))); } tmp8 = (tmp10); } tmp0 = (tmp8); } if (tmp0) { { break; } } } { const Variant &tmp0((x_array_shift(ref(m_trace)))); v_frame.assignVal(tmp0); } } } } if (isset(v_frame, NAMSTR(s_sys_ss8ce7db5b, "file"), true)) { { const Variant &tmp0((v_frame.rvalAt(NAMSTR(s_sys_ss8ce7db5b, "file"), AccessFlags::Error_Key))); m_file.assignVal(tmp0); } } if (isset(v_frame, NAMSTR(s_sys_ssddf8728c, "line"), true)) { { const Variant &tmp0((v_frame.rvalAt(NAMSTR(s_sys_ssddf8728c, "line"), AccessFlags::Error_Key))); m_line.assignVal(tmp0); } } }