ArrayData *SharedMap::prepend(CVarRef v, bool copy) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->prepend(v, false); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::remove(const StringData* k, bool copy) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->remove(k, false); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::append(const ArrayData *elems, ArrayOp op, bool copy) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->append(elems, op, false); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::setRef(StringData* k, CVarRef v, bool copy) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->setRef(k, v, false); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::lvalNew(Variant *&ret, bool copy) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->lvalNew(ret, false); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::remove(CVarRef k, bool copy, int64 prehash /* = -1 */) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->remove(k, false, prehash); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::set(CVarRef k, CVarRef v, bool copy, int64 prehash) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->set(k, v, false, prehash); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData *SharedMap::lval(StringData* k, Variant *&ret, bool copy, bool checkExist /* = false */) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->lval(k, ret, false); if (ee) { escalated->release(); return ee; } return escalated; }
ArrayData* APCLocalArray::EscalateForSort(ArrayData* ad, SortFunction sf) { auto a = asApcArray(ad); ArrayData* elems = a->loadElems(); ArrayData* ret = elems->escalateForSort(sf); if (ret != elems) { elems->release(); } assert(ret->getCount() == 0); assert(!ret->isStatic()); return ret; }
ArrayData *SharedMap::lval(CVarRef k, Variant *&ret, bool copy, int64 prehash /* = -1 */, bool checkExist /* = false */) { ArrayData *escalated = escalate(); ArrayData *ee = escalated->lval(k, ret, false, prehash); if (ee) { escalated->release(); return ee; } return escalated; }