#include "il2cpp-config.h" #include "metadata/GenericSharing.h" #include "vm/Type.h" #include "il2cpp-runtime-metadata.h" using il2cpp::vm::Type; namespace il2cpp { namespace metadata { bool GenericSharing::IsShareable(Il2CppGenericClass* gclass) { const Il2CppGenericInst* classInst = gclass->context.class_inst; if (classInst) { for (uint32_t i = 0; i < classInst->type_argc; ++i) { if (!Type::IsReference(classInst->type_argv[i])) return false; } } return true; } bool GenericSharing::IsShareable(Il2CppGenericMethod* gmethod) { const Il2CppGenericInst* methodInst = gmethod->context.method_inst; if (methodInst) { for (uint32_t i = 0; i < methodInst->type_argc; ++i) { if (!Type::IsReference(methodInst->type_argv[i])) return false; } } return true; } } /* namespace vm */ } /* namespace il2cpp */