ArrayData* EmptyArray::SetRefStr(ArrayData*, StringData* k, Variant& var, bool) { auto ref = *var.asRef(); tvIncRef(&ref); return EmptyArray::MakeMixed(k, ref).first; }
ArrayData* EmptyArray::SetRefStr(ArrayData*, StringData* k, Variant& var, bool) { if (RuntimeOption::EvalHackArrCompatNotices) raiseHackArrCompatRefBind(k); auto ref = *var.asRef(); tvIncRef(&ref); return EmptyArray::MakeMixed(k, ref).array; }
ArrayData* EmptyArray::SetRefInt(ArrayData*, int64_t k, Variant& var, bool) { auto ref = *var.asRef(); tvIncRef(&ref); auto const ret = k == 0 ? EmptyArray::MakePacked(ref) : EmptyArray::MakeMixed(k, ref); return ret.first; }
ArrayData* EmptyArray::SetRefInt(ArrayData*, int64_t k, Variant& var, bool) { if (RuntimeOption::EvalHackArrCompatNotices) raiseHackArrCompatRefBind(k); auto ref = *var.asRef(); tvIncRef(&ref); auto const ret = k == 0 ? EmptyArray::MakePacked(ref) : EmptyArray::MakeMixed(k, ref); return ret.array; }
ArrayData* EmptyArray::AppendRef(ArrayData*, Variant& v, bool copy) { if (RuntimeOption::EvalHackArrCompatNotices) raiseHackArrCompatRefNew(); auto ref = *v.asRef(); tvIncRef(&ref); return EmptyArray::MakePacked(ref).array; }
ArrayData* EmptyArray::AppendRef(ArrayData*, Variant& v, bool copy) { auto ref = *v.asRef(); tvIncRef(&ref); return EmptyArray::MakePacked(ref).first; }