43 lines
1.0 KiB
C++
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 */
|