since it is a value type.Object_t * L_3 = Box(InitializedTypeInfo(&Single_t264_il2cpp_TypeInfo), &L_2);// Here are three important runtime checksNullCheck(L_0);IL2CPP_ARRAY_BOUNDS_CHECK(L_0,0);ArrayElementTypeCheck (L_0, L_3);// Store the boxed value in the array at index...
Object_t * L_3 = Box(InitializedTypeInfo(&Single_t264_il2cpp_TypeInfo), &L_2); // Here are three important runtime checks NullCheck(L_0); IL2CPP_ARRAY_BOUNDS_CHECK(L_0, 0); ArrayElementTypeCheck (L_0, L_3); // Store the boxed value in the array at index 0 *((Object_t ...
IL_0010: box !!T IL_0015: brfalse IL_002f // Set up the arguments for the method and it call IL_001a: ldloc.0 IL_001b: ldarg.0 IL_001c: ldloc.1 IL_001d: ldelema !!T IL_0022: constrained. !!T IL_0028: callvirt instance int32 Unity.IL2CPP.IntegrationTests.Tests.ValueType...
// Box the float instance, since it is a value type. Object_t * L_3 = Box(InitializedTypeInfo(&Single_t264_il2cpp_TypeInfo), &L_2); // Here are three important runtime checks NullCheck(L_0); IL2CPP_ARRAY_BOUNDS_CHECK(L_0, 0); ArrayElementTypeCheck (L_0, L_3); // Store...
Object_t * L_3 = Box(InitializedTypeInfo(&Single_t264_il2cpp_TypeInfo), &L_2); // Here are three important runtime checks NullCheck(L_0); IL2CPP_ARRAY_BOUNDS_CHECK(L_0, 0); ArrayElementTypeCheck (L_0, L_3); // Store the boxed value in the array at index 0 *((Object_t...
Il2CppObject *il2cpp_value_box(void *a1, Il2CppClass *a2); void il2cpp_monitor_enter(Il2CppObject *obj); _BOOL4 il2cpp_monitor_try_enter(Il2CppObject *obj, uint32_t timeout); void il2cpp_monitor_exit(Il2CppObject *a1); void il2cpp_monitor_pulse(Il2CppObject *obj); void il2cpp_...
DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); // monitor DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); DO_API(void, il2cpp_monitor_exit, (Il2CppObjec...
BoxedType* Box$(); // Implicit constructor constexpr Type(decltype(m_value) value): m_value(value) {} constexpr Type(): m_value(0) {} bool operator==(Type const& rhs) const { return m_value == rhs.m_value; } bool operator!=(Type const& rhs) const { return m_value != rhs...
There’s not much going on here. There’s a null check as overhead, but this can beremoved. Then the method gets called, so let’s look at that. extern"C"voidMyClass_NonVirtualMethod_m3363069416(MyClass_t3388352440*__this,constRuntimeMethod*method){{return;}} ...
(Enumerator_t2017297076 *)__this); RuntimeObject * L_2 = Box(IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2), &L_1); NullCheck((RuntimeObject *)L_2); Type_t * L_3 = Object_GetType_m88164663((RuntimeObject *)L_2, /*hidden argument*/NULL); ...