2025-07-03 12:53:49 +04:00

43 lines
1.0 KiB
C++

#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 */