12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #pragma once
- #include <stdint.h>
- #include "il2cpp-blob.h"
- #include "il2cpp-metadata.h"
- struct Il2CppClass;
- struct MethodInfo;
- struct Il2CppType;
- typedef struct Il2CppArrayType
- {
- const Il2CppType* etype;
- uint8_t rank;
- uint8_t numsizes;
- uint8_t numlobounds;
- int *sizes;
- int *lobounds;
- } Il2CppArrayType;
- typedef struct Il2CppGenericInst
- {
- uint32_t type_argc;
- const Il2CppType **type_argv;
- } Il2CppGenericInst;
- typedef struct Il2CppGenericContext
- {
- /* The instantiation corresponding to the class generic parameters */
- const Il2CppGenericInst *class_inst;
- /* The instantiation corresponding to the method generic parameters */
- const Il2CppGenericInst *method_inst;
- } Il2CppGenericContext;
- typedef struct Il2CppGenericParameter
- {
- GenericContainerIndex ownerIndex; /* Type or method this parameter was defined in. */
- StringIndex nameIndex;
- GenericParameterConstraintIndex constraintsStart;
- int16_t constraintsCount;
- uint16_t num;
- uint16_t flags;
- } Il2CppGenericParameter;
- typedef struct Il2CppGenericContainer
- {
- /* index of the generic type definition or the generic method definition corresponding to this container */
- int32_t ownerIndex; // either index into Il2CppClass metadata array or Il2CppMethodDefinition array
- int32_t type_argc;
- /* If true, we're a generic method, otherwise a generic type definition. */
- int32_t is_method;
- /* Our type parameters. */
- GenericParameterIndex genericParameterStart;
- } Il2CppGenericContainer;
- typedef struct Il2CppGenericClass
- {
- TypeDefinitionIndex typeDefinitionIndex; /* the generic type definition */
- Il2CppGenericContext context; /* a context that contains the type instantiation doesn't contain any method instantiation */
- Il2CppClass *cached_class; /* if present, the Il2CppClass corresponding to the instantiation. */
- } Il2CppGenericClass;
- typedef struct Il2CppGenericMethod
- {
- const MethodInfo* methodDefinition;
- Il2CppGenericContext context;
- } Il2CppGenericMethod;
- typedef struct Il2CppType
- {
- union
- {
- // We have this dummy field first because pre C99 compilers (MSVC) can only initializer the first value in a union.
- void* dummy;
- TypeDefinitionIndex klassIndex; /* for VALUETYPE and CLASS */
- const Il2CppType *type; /* for PTR and SZARRAY */
- Il2CppArrayType *array; /* for ARRAY */
- //MonoMethodSignature *method;
- GenericParameterIndex genericParameterIndex; /* for VAR and MVAR */
- Il2CppGenericClass *generic_class; /* for GENERICINST */
- } data;
- unsigned int attrs : 16; /* param attributes or field flags */
- Il2CppTypeEnum type : 8;
- unsigned int num_mods : 6; /* max 64 modifiers follow at the end */
- unsigned int byref : 1;
- unsigned int pinned : 1; /* valid when included in a local var signature */
- //MonoCustomMod modifiers [MONO_ZERO_LEN_ARRAY]; /* this may grow */
- } Il2CppType;
|