TypedValue* tg1_12Continuation___construct(TypedValue* rv, HPHP::VM::ActRec* ar, long long count, ObjectData* this_) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->m_data.num = 0LL; rv->_count = 0; rv->m_type = KindOfNull; switch (count) { default: // count >= 6 if ((args-5)->m_type != KindOfArray) { tvCastToArrayInPlace(args-5); } case 5: case 4: break; } if (!IS_STRING_TYPE((args-3)->m_type)) { tvCastToStringInPlace(args-3); } if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } if ((args-1)->m_type != KindOfInt64) { tvCastToInt64InPlace(args-1); } if ((args-0)->m_type != KindOfInt64) { tvCastToInt64InPlace(args-0); } Variant defVal4; th_12Continuation___construct((this_), (long long)(args[-0].m_data.num), (long long)(args[-1].m_data.num), (bool)(args[-2].m_data.num), (Value*)(args-3), (count > 4) ? (args-4) : (TypedValue*)(&defVal4), (count > 5) ? (Value*)(args-5) : (Value*)(&null_array)); return rv; }
TypedValue * fg1_mssql_pconnect(TypedValue* rv, HPHP::VM::ActRec* ar, long long count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 4 if ((args-3)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-3); } case 3: if (!IS_STRING_TYPE((args-2)->m_type)) { tvCastToStringInPlace(args-2); } case 2: if (!IS_STRING_TYPE((args-1)->m_type)) { tvCastToStringInPlace(args-1); } case 1: if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } case 0: break; } fh_mssql_pconnect((rv), (count > 0) ? (Value*)(args-0) : (Value*)(&null_string), (count > 1) ? (Value*)(args-1) : (Value*)(&null_string), (count > 2) ? (Value*)(args-2) : (Value*)(&null_string), (count > 3) ? (bool)(args[-3].m_data.num) : (bool)(false)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
void fg1_is_callable(TypedValue* rv, ActRec* ar, int32_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; tvCastToBooleanInPlace(args-1); rv->m_type = KindOfBoolean; VRefParamValue defVal2 = uninit_null(); rv->m_data.num = (fh_is_callable((args-0), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(false), (count > 2) ? (args-2) : (TypedValue*)(&defVal2))) ? 1LL : 0LL; }
TypedValue * fg1_ignore_user_abort(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->m_type = KindOfInt64; tvCastToBooleanInPlace(args-0); rv->m_data.num = (int64_t)fh_ignore_user_abort((count > 0) ? (bool)(args[-0].m_data.num) : (bool)(false)); return rv; }
TypedValue * fg1_var_export(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; tvCastToBooleanInPlace(args-1); fh_var_export((rv), (args-0), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(false)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
TypedValue * fg1_hphp_get_timers(TypedValue* rv, HPHP::VM::ActRec* ar, long long count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; tvCastToBooleanInPlace(args-0); fh_hphp_get_timers((rv), (count > 0) ? (bool)(args[-0].m_data.num) : (bool)(true)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
TypedValue * fg1_hphp_output_global_state(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; tvCastToBooleanInPlace(args-0); fh_hphp_output_global_state((rv), (count > 0) ? (bool)(args[-0].m_data.num) : (bool)(true)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
TypedValue * fg1_iterator_to_array(TypedValue* rv, HPHP::VM::ActRec* ar, long long count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; tvCastToBooleanInPlace(args-1); fh_iterator_to_array((rv), (args-0), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(true)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
TypedValue * fg1_session_regenerate_id(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->m_type = KindOfBoolean; tvCastToBooleanInPlace(args-0); rv->m_data.num = (fh_session_regenerate_id((count > 0) ? (bool)(args[-0].m_data.num) : (bool)(false))) ? 1LL : 0LL; return rv; }
bool tvCoerceParamToBooleanInPlace(TypedValue* tv) { assert(tvIsPlausible(*tv)); tvUnboxIfNeeded(tv); switch (tv->m_type) { case KindOfUninit: case KindOfNull: case KindOfBoolean: case KindOfInt64: case KindOfDouble: case KindOfPersistentString: case KindOfString: // In PHP 7 mode handling of null types is stricter if (tv->m_type == KindOfNull && RuntimeOption::PHP7_ScalarTypes) { return false; } tvCastToBooleanInPlace(tv); return true; case KindOfPersistentArray: case KindOfArray: case KindOfObject: case KindOfResource: return false; case KindOfRef: case KindOfClass: break; } not_reached(); }
bool tvCoerceParamToBooleanInPlace(TypedValue* tv) { tvUnboxIfNeeded(tv); if (tv->m_type == KindOfArray || tv->m_type == KindOfObject) { return false; } tvCastToBooleanInPlace(tv); return true; }
bool tvCoerceParamToBooleanInPlace(TypedValue* tv) { assert(tvIsPlausible(*tv)); tvUnboxIfNeeded(tv); if (tv->m_type == KindOfArray || tv->m_type == KindOfObject || tv->m_type == KindOfResource) { return false; } tvCastToBooleanInPlace(tv); return true; }
TypedValue * fg1_spl_autoload_register(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->m_type = KindOfBoolean; switch (count) { default: // count >= 3 if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } case 2: if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: case 0: break; } rv->m_data.num = (fh_spl_autoload_register((count > 0) ? (args-0) : (TypedValue*)(&null_variant), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(true), (count > 2) ? (bool)(args[-2].m_data.num) : (bool)(false))) ? 1LL : 0LL; return rv; }
TypedValue * fg1_stream_socket_get_name(TypedValue* rv, HPHP::VM::ActRec* ar, long long count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } if ((args-0)->m_type != KindOfObject) { tvCastToObjectInPlace(args-0); } fh_stream_socket_get_name((rv), (Value*)(args-0), (bool)(args[-1].m_data.num)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
static bool objOffsetExists(ObjectData* base, CVarRef offset) { objArrayAccess(base); TypedValue tvResult; tvWriteUninit(&tvResult); static StringData* sd__offsetExists = StringData::GetStaticString("offsetExists"); assert(!base->isCollection()); const Func* method = base->methodNamed(sd__offsetExists); assert(method != nullptr); base->invokeUserMethod(&tvResult, method, CREATE_VECTOR1(offset)); tvCastToBooleanInPlace(&tvResult); return bool(tvResult.m_data.num); }
TypedValue * fg1_icu_transliterate(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->m_type = KindOfString; if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } fh_icu_transliterate((&rv->m_data), &args[-0].m_data, (bool)(args[-1].m_data.num)); if (rv->m_data.num == 0LL) rv->m_type = KindOfNull; return rv; }
bool objOffsetExists(TypedValue* base, CVarRef offset) { objArrayAccess(base); TypedValue tvResult; tvWriteUninit(&tvResult); static StringData* sd__offsetExists = StringData::GetStaticString("offsetExists"); ObjectData* obj = base->m_data.pobj; Instance* instance = static_cast<Instance*>(obj); const Func* method = instance->methodNamed(sd__offsetExists); ASSERT(method != NULL); instance->invokeUserMethod(&tvResult, method, CREATE_VECTOR1(offset)); tvCastToBooleanInPlace(&tvResult); return bool(tvResult.m_data.num); }
void fg1_thrift_protocol_read_binary(TypedValue* rv, ActRec* ar, int32_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } if (!IS_STRING_TYPE((args-1)->m_type)) { tvCastToStringInPlace(args-1); } if ((args-0)->m_type != KindOfObject) { tvCastToObjectInPlace(args-0); } fh_thrift_protocol_read_binary(rv, &args[-0].m_data, &args[-1].m_data, (bool)(args[-2].m_data.num)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; }
static bool objOffsetExists(ObjectData* base, CVarRef offset) { objArrayAccess(base); TypedValue tvResult; tvWriteUninit(&tvResult); static StringData* sd__offsetExists = makeStaticString("offsetExists"); assert(!base->isCollection()); const Func* method = base->methodNamed(sd__offsetExists); assert(method != nullptr); g_vmContext->invokeFuncFew(&tvResult, method, base, nullptr, 1, offset.asCell()); tvCastToBooleanInPlace(&tvResult); return bool(tvResult.m_data.num); }
static OffsetExistsResult objOffsetExists(ObjectData* base, const Variant& offset) { objArrayAccess(base); TypedValue tvResult; tvWriteUninit(&tvResult); assert(!base->isCollection()); const Func* method = base->methodNamed(s_offsetExists.get()); assert(method != nullptr); g_context->invokeFuncFew(&tvResult, method, base, nullptr, 1, offset.asCell()); tvCastToBooleanInPlace(&tvResult); if (!tvResult.m_data.num) return OffsetExistsResult::DoesNotExist; return method->cls() == SystemLib::s_ArrayObjectClass ? OffsetExistsResult::IssetIfNonNull : OffsetExistsResult::DefinitelyExists; }
TypedValue * fg1_thrift_protocol_read_binary(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } if (!IS_STRING_TYPE((args-1)->m_type)) { tvCastToStringInPlace(args-1); } if ((args-0)->m_type != KindOfObject) { tvCastToObjectInPlace(args-0); } fh_thrift_protocol_read_binary((rv), (Value*)(args-0), (Value*)(args-1), (bool)(args[-2].m_data.num)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
void fg1_function_exists(TypedValue* rv, ActRec* ar, int32_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 2 if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: break; } if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } rv->m_type = KindOfBoolean; rv->m_data.num = (fh_function_exists(&args[-0].m_data, (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(true))) ? 1LL : 0LL; }
void fg1_define(TypedValue* rv, ActRec* ar, int32_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 3 if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } case 2: break; } if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } rv->m_type = KindOfBoolean; rv->m_data.num = (fh_define(&args[-0].m_data, (args-1), (count > 2) ? (bool)(args[-2].m_data.num) : (bool)(false))) ? 1LL : 0LL; }
void fg1_gzfile(TypedValue* rv, ActRec* ar, int32_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 2 if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: break; } if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } fh_gzfile(rv, &args[-0].m_data, (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(false)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; }
TypedValue * fg1_is_subclass_of(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->m_type = KindOfBoolean; switch (count) { default: // count >= 3 if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } case 2: break; } if (!IS_STRING_TYPE((args-1)->m_type)) { tvCastToStringInPlace(args-1); } rv->m_data.num = (fh_is_subclass_of((args-0), &args[-1].m_data, (count > 2) ? (bool)(args[-2].m_data.num) : (bool)(true))) ? 1LL : 0LL; return rv; }
TypedValue * fg1_highlight_string(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 2 if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: break; } if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } fh_highlight_string((rv), &args[-0].m_data, (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(false)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
TypedValue * fg1_apc_cache_info(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 2 if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: if ((args-0)->m_type != KindOfInt64) { tvCastToInt64InPlace(args-0); } case 0: break; } fh_apc_cache_info((rv), (count > 0) ? (long)(args[-0].m_data.num) : (long)(0), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(false)); if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull; return rv; }
TypedValue * fg1_pcntl_signal(TypedValue* rv, HPHP::VM::ActRec* ar, long long count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->_count = 0; rv->m_type = KindOfBoolean; switch (count) { default: // count >= 3 if ((args-2)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-2); } case 2: break; } if ((args-0)->m_type != KindOfInt64) { tvCastToInt64InPlace(args-0); } rv->m_data.num = (fh_pcntl_signal((int)(args[-0].m_data.num), (args-1), (count > 2) ? (bool)(args[-2].m_data.num) : (bool)(true))) ? 1LL : 0LL; return rv; }
void fg1_uniqid(TypedValue* rv, ActRec* ar, int32_t count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; switch (count) { default: // count >= 2 if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } case 0: break; } rv->m_type = KindOfString; fh_uniqid(&(rv->m_data), (count > 0) ? &args[-0].m_data : (Value*)(&null_string), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(false)); if (rv->m_data.num == 0LL) rv->m_type = KindOfNull; }
TypedValue * fg1_trait_exists(TypedValue* rv, HPHP::VM::ActRec* ar, long long count) { TypedValue* args UNUSED = ((TypedValue*)ar) - 1; rv->_count = 0; rv->m_type = KindOfBoolean; switch (count) { default: // count >= 2 if ((args-1)->m_type != KindOfBoolean) { tvCastToBooleanInPlace(args-1); } case 1: break; } if (!IS_STRING_TYPE((args-0)->m_type)) { tvCastToStringInPlace(args-0); } rv->m_data.num = (fh_trait_exists((Value*)(args-0), (count > 1) ? (bool)(args[-1].m_data.num) : (bool)(true))) ? 1LL : 0LL; return rv; }