grammar updates
[mono.git] / mono / metadata / metadata.h
index 45890cbea15ceeea88fdf64621981875c317aad7..54e8bebb49348fc914a5039e330bedbec29288dd 100644 (file)
@@ -257,6 +257,7 @@ typedef struct {
 
 typedef struct _MonoType MonoType;
 typedef struct _MonoGenericInst MonoGenericInst;
+typedef struct _MonoGenericParam MonoGenericParam;
 typedef struct _MonoArrayType MonoArrayType;
 typedef struct _MonoMethodSignature MonoMethodSignature;
 
@@ -274,23 +275,14 @@ struct _MonoArrayType {
        int *lobounds;
 };
 
-/*
- * Generic instantiation data type encoding.
- */
-struct _MonoGenericInst {
-       MonoType *generic_type;
-       int type_argc;
-       MonoType **type_argv;
-};
-
 struct _MonoType {
        union {
                MonoClass *klass; /* for VALUETYPE and CLASS */
                MonoType *type;   /* for PTR */
                MonoArrayType *array; /* for ARRAY */
                MonoMethodSignature *method;
-               int type_param;
-               MonoGenericInst *generic_inst;
+               MonoGenericParam *generic_param; /* for VAR and MVAR */
+               MonoGenericInst *generic_inst; /* for GENERICINST */
        } data;
        unsigned int attrs    : 16; /* param attributes or field flags */
        unsigned int type     : 8;  /* ElementTypeEnum */
@@ -308,6 +300,7 @@ struct _MonoMethodSignature {
        unsigned int  ref_count : 23;
        guint16       param_count;
        guint16       sentinelpos;
+       guint16       generic_param_count;
        MonoType     *ret;
        MonoType     *params [MONO_ZERO_LEN_ARRAY];
 };
@@ -321,6 +314,8 @@ typedef struct {
        unsigned int init_locals : 1;
        guint16      num_locals;
        MonoExceptionClause *clauses;
+       MonoGenericParam *gen_params;
+       MonoGenericInst *geninst;
        MonoType    *locals [MONO_ZERO_LEN_ARRAY];
 } MonoMethodHeader;
 
@@ -333,13 +328,6 @@ typedef enum {
        MONO_PARSE_FIELD
 } MonoParseTypeMode;
 
-typedef struct {
-       const char *name;
-       guint16 flags;
-       guint16 num;
-       MonoClass** constraints; /* NULL means end of list */
-} MonoGenericParam;
-
 guint32     mono_metadata_parse_typedef_or_ref (MonoImage      *m,
                                                 const char      *ptr,
                                                 const char     **rptr);
@@ -403,7 +391,7 @@ mono_type_to_unmanaged (MonoType *type, MonoMarshalSpec *mspec,
 /*
  * Makes a token based on a table and an index
  */
-#define mono_metadata_make_token(table,idx) (((table) << 24)| idx)
+#define mono_metadata_make_token(table,idx) (((table) << 24)| (idx))
 
 /*
  * Returns the table index that this token encodes.
@@ -422,6 +410,4 @@ guint32 mono_metadata_token_from_dor (guint32 dor_index);
 
 char *mono_guid_to_string (const guint8 *guid);
 
-MonoGenericParam *mono_metadata_load_generic_params (MonoImage *image, guint32 token, guint32 *num);
-
 #endif /* __MONO_METADATA_H__ */