예제 #1
0
ArrayData *APCLocalArray::LvalNew(ArrayData* ad, Variant *&ret, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->lvalNew(ret, false));
}
예제 #2
0
ArrayData*
APCLocalArray::SetStr(ArrayData* ad, StringData* k, Cell v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->set(k, tvAsCVarRef(&v), false));
}
예제 #3
0
ArrayData*
APCLocalArray::AppendRef(ArrayData* ad, CVarRef v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->appendRef(v, false));
}
예제 #4
0
ArrayData *APCLocalArray::LvalStr(ArrayData* ad, StringData* k, Variant *&ret,
                                  bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->lval(k, ret, false));
}
예제 #5
0
ArrayData* APCLocalArray::Prepend(ArrayData* ad, Cell v, bool copy) {
  auto escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->prepend(v, false));
}
예제 #6
0
ArrayData*
APCLocalArray::SetInt(ArrayData* ad, int64_t k, const Variant& v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->set(k, v, false));
}
예제 #7
0
ArrayData *SharedMap::AppendWithRef(ArrayData* ad, CVarRef v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->appendWithRef(v, false));
}
예제 #8
0
ArrayData*
APCLocalArray::RemoveStr(ArrayData* ad, const StringData* k, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->remove(k, false));
}
예제 #9
0
ArrayData*
SharedMap::SetRefStr(ArrayData* ad, StringData* k, CVarRef v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->setRef(k, v, false));
}
예제 #10
0
ArrayData *SharedMap::AddLvalStr(ArrayData* ad, StringData* k, Variant *&ret,
                                 bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->addLval(k, ret, false));
}
예제 #11
0
ArrayData*
SharedMap::SetInt(ArrayData* ad, int64_t k, CVarRef v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->set(k, v, false));
}
예제 #12
0
ArrayData *SharedMap::LvalInt(ArrayData* ad, int64_t k, Variant *&ret,
                              bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->lval(k, ret, false));
}
예제 #13
0
ArrayData *APCLocalArray::Prepend(ArrayData* ad, const Variant& v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->prepend(v, false));
}
예제 #14
0
ArrayData*
APCLocalArray::SetRefStr(ArrayData* ad, StringData* k, Variant& v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->setRef(k, v, false));
}
예제 #15
0
ArrayData *SharedMap::Merge(ArrayData* ad, const ArrayData *elems, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->merge(elems, false));
}
예제 #16
0
ArrayData *APCLocalArray::RemoveInt(ArrayData* ad, int64_t k, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->remove(k, false));
}
예제 #17
0
ArrayData *SharedMap::Prepend(ArrayData* ad, CVarRef v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->prepend(v, false));
}
예제 #18
0
ArrayData*
APCLocalArray::AppendWithRef(ArrayData* ad, const Variant& v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->appendWithRef(v, false));
}
예제 #19
0
ArrayData*
APCLocalArray::SetRefInt(ArrayData* ad, int64_t k, CVarRef v, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->setRef(k, v, false));
}
예제 #20
0
ArrayLval APCLocalArray::LvalInt(ArrayData* ad, int64_t k, bool copy) {
  auto const escalated = Escalate(ad);
  auto const r = escalated->lval(k, false);
  return {releaseIfCopied(escalated, r.array), r.val};
}
예제 #21
0
ArrayData*
SharedArray::Plus(ArrayData* ad, const ArrayData *elems, bool copy) {
  ArrayData *escalated = Escalate(ad);
  return releaseIfCopied(escalated, escalated->plus(elems, false));
}