#include "il2cpp-config.h" #include "il2cpp-class-internals.h" #include "il2cpp-api.h" #include "EventInfo.h" #include "vm/Class.h" #include "vm/Reflection.h" namespace il2cpp { namespace icalls { namespace mscorlib { namespace System { namespace Reflection { Il2CppReflectionEvent* EventInfo::internal_from_handle_type(intptr_t handlePtr, intptr_t typePtr) { Il2CppClass *klass; IL2CPP_ASSERT(handlePtr); ::EventInfo *handle = (::EventInfo*)handlePtr; Il2CppType *type = (Il2CppType*)typePtr; if (!type) { klass = handle->parent; } else { klass = il2cpp_class_from_il2cpp_type(type); bool found = klass == handle->parent || il2cpp::vm::Class::HasParent(klass, handle->parent); if (!found) /* Managed code will throw an exception */ return NULL; } Il2CppReflectionEvent *result = il2cpp::vm::Reflection::GetEventObject(klass, handle); return result; } } // namespace Reflection } // namespace System } // namespace mscorlib } // namespace icalls } // namespace il2cpp