void MutableArrayIter::escalateCheck() { ArrayData* data; if (m_var) { data = getData(); if (!data) return; ArrayData* esc = data->escalate(true); if (data != esc) { *const_cast<Variant*>(m_var) = esc; } } else { assert(m_data); data = m_data; ArrayData* esc = data->escalate(true); if (data != esc) { esc->incRefCount(); decRefArr(data); m_data = esc; } } }