コード例 #1
0
ファイル: empty-array.cpp プロジェクト: facebook/hhvm
ArrayData* EmptyArray::SetWithRefInt(ArrayData* ad, int64_t k, TypedValue v) {
  if (checkHACRefBind() && tvIsReferenced(v)) {
    raiseHackArrCompatRefBind(k);
  }
  auto const lval = LvalIntImpl<false>(ad, k, ad->cowCheck());
  tvSetWithRef(v, lval);
  return lval.arr;
}
コード例 #2
0
ファイル: empty-array.cpp プロジェクト: aloiret/hhvm
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;
}
コード例 #3
0
ファイル: empty-array.cpp プロジェクト: aloiret/hhvm
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;
}
コード例 #4
0
ファイル: empty-array.cpp プロジェクト: aloiret/hhvm
ArrayLval EmptyArray::LvalStrRef(ArrayData* ad, StringData* k, bool copy) {
  if (RuntimeOption::EvalHackArrCompatNotices) raiseHackArrCompatRefBind(k);
  return LvalStr(ad, k, copy);
}
コード例 #5
0
ファイル: empty-array.cpp プロジェクト: aloiret/hhvm
ArrayLval EmptyArray::LvalIntRef(ArrayData* ad, int64_t k, bool copy) {
  if (RuntimeOption::EvalHackArrCompatNotices) raiseHackArrCompatRefBind(k);
  return LvalInt(ad, k, copy);
}
コード例 #6
0
ファイル: empty-array.cpp プロジェクト: facebook/hhvm
arr_lval EmptyArray::LvalStrRef(ArrayData* ad, StringData* k, bool copy) {
  if (checkHACRefBind()) raiseHackArrCompatRefBind(k);
  return LvalStr(ad, k, copy);
}
コード例 #7
0
ファイル: empty-array.cpp プロジェクト: facebook/hhvm
arr_lval EmptyArray::LvalIntRef(ArrayData* ad, int64_t k, bool copy) {
  if (checkHACRefBind()) raiseHackArrCompatRefBind(k);
  return LvalInt(ad, k, copy);
}