Esempio n. 1
0
ArrayData *SharedMap::prepend(CVarRef v, bool copy) {
    ArrayData *escalated = escalate();
    ArrayData *ee = escalated->prepend(v, false);
    if (ee) {
        escalated->release();
        return ee;
    }
    return escalated;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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;
}
Esempio n. 5
0
ArrayData *SharedMap::lvalNew(Variant *&ret, bool copy) {
    ArrayData *escalated = escalate();
    ArrayData *ee = escalated->lvalNew(ret, false);
    if (ee) {
        escalated->release();
        return ee;
    }
    return escalated;
}
Esempio n. 6
0
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;
}
Esempio n. 7
0
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;
}
Esempio n. 8
0
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;
}
Esempio n. 9
0
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;
}
Esempio n. 10
0
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;
}