Skip to content

Commit dc98d95

Browse files
committed
Expose embedding APIs for querying generic instance arguments.
1 parent 157407b commit dc98d95

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

mono/metadata/unity-utils.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,6 +1129,31 @@ mono_unity_class_get_generic_parameter_count (MonoClass* klass)
11291129
return generic_container->type_argc;
11301130
}
11311131

1132+
MONO_API MonoClass*
1133+
mono_unity_class_get_generic_argument_at (MonoClass* klass, guint32 index)
1134+
{
1135+
if (!mono_class_is_ginst (klass))
1136+
return NULL;
1137+
1138+
MonoGenericClass* generic_class = mono_class_get_generic_class (klass);
1139+
1140+
if (index >= generic_class->context.class_inst->type_argc)
1141+
return NULL;
1142+
1143+
return mono_class_from_mono_type (generic_class->context.class_inst->type_argv[index]);
1144+
}
1145+
1146+
MONO_API guint32
1147+
mono_unity_class_get_generic_argument_count (MonoClass* klass)
1148+
{
1149+
if (!mono_class_is_ginst (klass))
1150+
return NULL;
1151+
1152+
MonoGenericClass* generic_class = mono_class_get_generic_class (klass);
1153+
1154+
return generic_class->context.class_inst->type_argc;
1155+
}
1156+
11321157
MONO_API MonoClass*
11331158
mono_unity_class_get(MonoImage* image, guint32 type_token)
11341159
{

0 commit comments

Comments
 (0)