/* 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; }
Variant Array::appendOpEqual(int op, CVarRef v) { if (!m_px) { ArrayBase::operator=(ArrayData::Create()); } Variant *cv = NULL; ArrayData *escalated = m_px->lvalNew(cv, m_px->getCount() > 1); if (escalated) { ArrayBase::operator=(escalated); } ASSERT(cv); switch (op) { case T_CONCAT_EQUAL: return concat_assign((*cv), v); case T_PLUS_EQUAL: return ((*cv) += v); case T_MINUS_EQUAL: return ((*cv) -= v); case T_MUL_EQUAL: return ((*cv) *= v); case T_DIV_EQUAL: return ((*cv) /= v); case T_MOD_EQUAL: return ((*cv) %= v); case T_AND_EQUAL: return ((*cv) &= v); case T_OR_EQUAL: return ((*cv) |= v); case T_XOR_EQUAL: return ((*cv) ^= v); case T_SL_EQUAL: return ((*cv) <<= v); case T_SR_EQUAL: return ((*cv) >>= v); default: throw FatalErrorException(0, "invalid operator %d", op); } }