Esempio n. 1
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. 2
0
Variant &Array::lvalAt() {
  if (!m_px) ArrayBase::operator=(ArrayData::Create());
  Variant *ret = nullptr;
  ArrayData *arr = m_px;
  ArrayData *escalated = arr->lvalNew(ret, arr->getCount() > 1);
  if (escalated != arr) ArrayBase::operator=(escalated);
  assert(ret);
  return *ret;
}
Esempio n. 3
0
Variant &Array::lvalAt() {
  if (!m_px) {
    SmartPtr<ArrayData>::operator=(ArrayData::Create());
  }
  Variant *ret = NULL;
  ArrayData *arr = m_px;
  ArrayData *escalated = arr->lvalNew(ret, arr->getCount() > 1);
  if (escalated) {
    SmartPtr<ArrayData>::operator=(escalated);
  }
  ASSERT(ret);
  return *ret;
}
Esempio n. 4
0
ArrayData *SharedMap::lvalNew(Variant *&ret, bool copy) {
  ArrayData *escalated = SharedMap::escalate();
  return releaseIfCopied(escalated, escalated->lvalNew(ret, false));
}
Esempio n. 5
0
ArrayData *APCLocalArray::LvalNew(ArrayData* ad, Variant *&ret, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->lvalNew(ret, false));
}