Author: zoltan
Date: 2006-10-05 10:53:21 -0400 (Thu, 05 Oct 2006)
New Revision: 66291

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/class.c
   trunk/mono/mono/metadata/image.c
   trunk/mono/mono/metadata/loader.c
   trunk/mono/mono/metadata/metadata-internals.h
   trunk/mono/mono/metadata/metadata.c
   trunk/mono/mono/metadata/metadata.h
   trunk/mono/mono/metadata/row-indexes.h
Log:
2006-10-05  Zoltan Varga  <[EMAIL PROTECTED]>

        * row-indexes.h: Add definitions for *Ptr tables.

        * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.

        * metadata.c (mono_metadata_translate_token_index): New helper function 
to
        translate table indexes used in uncompressed metadata.
        (mono_metadata_decode_table_row): Ditto.
        (mono_metadata_decode_table_row_col): Ditto.

        * metadata.c: Add table schema for *Ptr tables.

        * class.c loader.c: Use the new helper function to access the affected 
metadata
        tables.
        
        * image.c (load_metadata_ptrs): Allow assemblies with uncompressed 
metadata. Fixes
        #38532.


Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2006-10-05 14:36:49 UTC (rev 66290)
+++ trunk/mono/mono/metadata/ChangeLog  2006-10-05 14:53:21 UTC (rev 66291)
@@ -1,3 +1,22 @@
+2006-10-05  Zoltan Varga  <[EMAIL PROTECTED]>
+
+       * row-indexes.h: Add definitions for *Ptr tables.
+
+       * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
+
+       * metadata.c (mono_metadata_translate_token_index): New helper function 
to
+       translate table indexes used in uncompressed metadata.
+       (mono_metadata_decode_table_row): Ditto.
+       (mono_metadata_decode_table_row_col): Ditto.
+
+       * metadata.c: Add table schema for *Ptr tables.
+
+       * class.c loader.c: Use the new helper function to access the affected 
metadata
+       tables.
+       
+       * image.c (load_metadata_ptrs): Allow assemblies with uncompressed 
metadata. Fixes
+       #38532.
+       
 2006-10-04  Zoltan Varga  <[EMAIL PROTECTED]>
 
        * marshal.c (emit_object_to_ptr_conv): Avoid using short branches 
around IL

Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c    2006-10-05 14:36:49 UTC (rev 66290)
+++ trunk/mono/mono/metadata/class.c    2006-10-05 14:53:21 UTC (rev 66291)
@@ -744,7 +744,6 @@
 {
        MonoImage *m = class->image; 
        const int top = class->field.count;
-       MonoTableInfo *t = &m->tables [MONO_TABLE_FIELD];
        int i;
 
        g_assert (class->enumtype);
@@ -759,7 +758,7 @@
                MonoGenericContainer *container = NULL;
                MonoType *ftype;
 
-               mono_metadata_decode_row (t, idx, cols, MONO_FIELD_SIZE);
+               mono_metadata_decode_table_row (m, MONO_TABLE_FIELD, idx, cols, 
MONO_FIELD_SIZE);
                sig = mono_metadata_blob_heap (m, cols [MONO_FIELD_SIGNATURE]);
                mono_metadata_decode_value (sig, &sig);
                /* FIELD signature == 0x06 */
@@ -800,7 +799,6 @@
        MonoImage *m = class->image; 
        int top = class->field.count;
        guint32 layout = class->flags & TYPE_ATTRIBUTE_LAYOUT_MASK;
-       MonoTableInfo *t = &m->tables [MONO_TABLE_FIELD];
        int i, blittable = TRUE;
        guint32 real_size = 0;
        guint32 packing_size = 0;
@@ -900,7 +898,7 @@
                        const char *sig;
                        guint32 cols [MONO_FIELD_SIZE];
 
-                       mono_metadata_decode_row (t, idx, cols, 
MONO_FIELD_SIZE);
+                       mono_metadata_decode_table_row (m, MONO_TABLE_FIELD, 
idx, cols, MONO_FIELD_SIZE);
                        /* The name is needed for fieldrefs */
                        field->name = mono_metadata_string_heap (m, cols 
[MONO_FIELD_NAME]);
                        sig = mono_metadata_blob_heap (m, cols 
[MONO_FIELD_SIGNATURE]);
@@ -1395,7 +1393,6 @@
 {
        guint startm, endm, i, j;
        guint32 cols [MONO_EVENT_SIZE];
-       MonoTableInfo *pt = &class->image->tables [MONO_TABLE_EVENT];
        MonoTableInfo *msemt = &class->image->tables 
[MONO_TABLE_METHODSEMANTICS];
        guint32 last;
        MonoEvent *events;
@@ -1440,8 +1437,8 @@
        events = mono_mempool_alloc0 (class->image->mempool, sizeof (MonoEvent) 
* class->event.count);
        for (i = class->event.first; i < last; ++i) {
                MonoEvent *event = &events [i - class->event.first];
-                       
-               mono_metadata_decode_row (pt, i, cols, MONO_EVENT_SIZE);
+
+               mono_metadata_decode_table_row (class->image, MONO_TABLE_EVENT, 
i, cols, MONO_EVENT_SIZE);
                event->parent = class;
                event->attrs = cols [MONO_EVENT_FLAGS];
                event->name = mono_metadata_string_heap (class->image, cols 
[MONO_EVENT_NAME]);

Modified: trunk/mono/mono/metadata/image.c
===================================================================
--- trunk/mono/mono/metadata/image.c    2006-10-05 14:36:49 UTC (rev 66290)
+++ trunk/mono/mono/metadata/image.c    2006-10-05 14:53:21 UTC (rev 66291)
@@ -345,8 +345,11 @@
                        image->heap_guid.size = read32 (ptr + 4);
                        ptr += 8 + 6;
                } else if (strncmp (ptr + 8, "#-", 3) == 0) {
-                       g_print ("Assembly '%s' has the non-standard metadata 
heap #-.\nRecompile it correctly (without the /incremental switch or in Release 
mode).", image->name);
-                       return FALSE;
+                       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_ASSEMBLY, 
"Assembly '%s' has the non-standard metadata heap #-.\nRecompile it correctly 
(without the /incremental switch or in Release mode).\n", image->name);
+                       image->heap_tables.data = image->raw_metadata + read32 
(ptr);
+                       image->heap_tables.size = read32 (ptr + 4);
+                       ptr += 8 + 3;
+                       image->uncompressed_metadata = TRUE;
                } else {
                        g_message ("Unknown heap type: %s\n", ptr + 8);
                        ptr += 8 + strlen (ptr + 8) + 1;

Modified: trunk/mono/mono/metadata/loader.c
===================================================================
--- trunk/mono/mono/metadata/loader.c   2006-10-05 14:36:49 UTC (rev 66290)
+++ trunk/mono/mono/metadata/loader.c   2006-10-05 14:53:21 UTC (rev 66291)
@@ -1303,7 +1303,7 @@
                return result;
        }
 
-       mono_metadata_decode_row (&tables [table], idx - 1, cols, 6);
+       mono_metadata_decode_table_row (image, MONO_TABLE_METHOD, idx - 1, 
cols, 6);
 
        if ((cols [2] & METHOD_ATTRIBUTE_PINVOKE_IMPL) ||
            (cols [1] & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
@@ -1537,14 +1537,16 @@
        idx = mono_method_get_index (method);
        if (idx > 0) {
                guint32 cols [MONO_PARAM_SIZE];
-               guint param_index = mono_metadata_decode_row_col (methodt, idx 
- 1, MONO_METHOD_PARAMLIST);
+               guint param_index;
 
+               param_index = mono_metadata_decode_table_row_col (klass->image, 
MONO_TABLE_METHOD, idx - 1, MONO_METHOD_PARAMLIST);
+
                if (idx < methodt->rows)
-                       lastp = mono_metadata_decode_row_col (methodt, idx, 
MONO_METHOD_PARAMLIST);
+                       lastp = mono_metadata_decode_table_row_col 
(klass->image, MONO_TABLE_METHOD, idx, MONO_METHOD_PARAMLIST);
                else
                        lastp = paramt->rows + 1;
                for (i = param_index; i < lastp; ++i) {
-                       mono_metadata_decode_row (paramt, i -1, cols, 
MONO_PARAM_SIZE);
+                       mono_metadata_decode_table_row (klass->image, 
MONO_TABLE_PARAM, i -1, cols, MONO_PARAM_SIZE);
                        if (cols [MONO_PARAM_SEQUENCE]) /* skip return param 
spec */
                                names [cols [MONO_PARAM_SEQUENCE] - 1] = 
mono_metadata_string_heap (klass->image, cols [MONO_PARAM_NAME]);
                }
@@ -1571,7 +1573,7 @@
        methodt = &klass->image->tables [MONO_TABLE_METHOD];
        idx = mono_method_get_index (method);
        if (idx > 0) {
-               guint param_index = mono_metadata_decode_row_col (methodt, idx 
- 1, MONO_METHOD_PARAMLIST);
+               guint param_index = mono_metadata_decode_table_row_col 
(klass->image, MONO_TABLE_METHOD, idx - 1, MONO_METHOD_PARAMLIST);
 
                return mono_metadata_make_token (MONO_TABLE_PARAM, param_index 
+ index);
        }
@@ -1613,15 +1615,15 @@
        idx = mono_method_get_index (method);
        if (idx > 0) {
                guint32 cols [MONO_PARAM_SIZE];
-               guint param_index = mono_metadata_decode_row_col (methodt, idx 
- 1, MONO_METHOD_PARAMLIST);
+               guint param_index = mono_metadata_decode_table_row_col 
(klass->image, MONO_TABLE_METHOD, idx - 1, MONO_METHOD_PARAMLIST);
 
                if (idx < methodt->rows)
-                       lastp = mono_metadata_decode_row_col (methodt, idx, 
MONO_METHOD_PARAMLIST);
+                       lastp = mono_metadata_decode_table_row_col 
(klass->image, MONO_TABLE_METHOD, idx, MONO_METHOD_PARAMLIST);
                else
                        lastp = paramt->rows + 1;
 
                for (i = param_index; i < lastp; ++i) {
-                       mono_metadata_decode_row (paramt, i -1, cols, 
MONO_PARAM_SIZE);
+                       mono_metadata_decode_table_row (klass->image, 
MONO_TABLE_PARAM, i -1, cols, MONO_PARAM_SIZE);
 
                        if (cols [MONO_PARAM_FLAGS] & 
PARAM_ATTRIBUTE_HAS_FIELD_MARSHAL) {
                                const char *tp;
@@ -1664,15 +1666,15 @@
        idx = mono_method_get_index (method);
        if (idx > 0) {
                guint32 cols [MONO_PARAM_SIZE];
-               guint param_index = mono_metadata_decode_row_col (methodt, idx 
- 1, MONO_METHOD_PARAMLIST);
+               guint param_index = mono_metadata_decode_table_row_col 
(klass->image, MONO_TABLE_METHOD, idx - 1, MONO_METHOD_PARAMLIST);
 
                if (idx + 1 < methodt->rows)
-                       lastp = mono_metadata_decode_row_col (methodt, idx, 
MONO_METHOD_PARAMLIST);
+                       lastp = mono_metadata_decode_table_row_col 
(klass->image, MONO_TABLE_METHOD, idx, MONO_METHOD_PARAMLIST);
                else
                        lastp = paramt->rows + 1;
 
                for (i = param_index; i < lastp; ++i) {
-                       mono_metadata_decode_row (paramt, i -1, cols, 
MONO_PARAM_SIZE);
+                       mono_metadata_decode_table_row (klass->image, 
MONO_TABLE_PARAM, i -1, cols, MONO_PARAM_SIZE);
 
                        if (cols [MONO_PARAM_FLAGS] & 
PARAM_ATTRIBUTE_HAS_FIELD_MARSHAL)
                                return TRUE;
@@ -1930,7 +1932,7 @@
        g_assert (mono_metadata_token_table (method->token) == 
MONO_TABLE_METHOD);
        idx = mono_metadata_token_index (method->token);
        img = method->klass->image;
-       rva = mono_metadata_decode_row_col (&img->tables [MONO_TABLE_METHOD], 
idx - 1, MONO_METHOD_RVA);
+       rva = mono_metadata_decode_table_row_col (img, MONO_TABLE_METHOD, idx - 
1, MONO_METHOD_RVA);
        loc = mono_image_rva_map (img, rva);
 
        g_assert (loc);

Modified: trunk/mono/mono/metadata/metadata-internals.h
===================================================================
--- trunk/mono/mono/metadata/metadata-internals.h       2006-10-05 14:36:49 UTC 
(rev 66290)
+++ trunk/mono/mono/metadata/metadata-internals.h       2006-10-05 14:53:21 UTC 
(rev 66291)
@@ -81,6 +81,9 @@
        /* Whenever this is a reflection only image */
        guint8 ref_only;
 
+       /* Whenever this image contains uncompressed metadata */
+       guint8 uncompressed_metadata;
+
        char *name;
        const char *assembly_name;
        const char *module_name;

Modified: trunk/mono/mono/metadata/metadata.c
===================================================================
--- trunk/mono/mono/metadata/metadata.c 2006-10-05 14:36:49 UTC (rev 66290)
+++ trunk/mono/mono/metadata/metadata.c 2006-10-05 14:53:21 UTC (rev 66291)
@@ -175,7 +175,11 @@
        MONO_MT_TABLE_IDX,  /* "EventType" }, TypeDef or TypeRef  */
        MONO_MT_END,
 
-#define EXPORTED_TYPE_SCHEMA_OFFSET EVENT_SCHEMA_OFFSET + 4
+#define EVENT_POINTER_SCHEMA_OFFSET EVENT_SCHEMA_OFFSET + 4
+       MONO_MT_TABLE_IDX,  /* "Event" }, */
+       MONO_MT_END,
+
+#define EXPORTED_TYPE_SCHEMA_OFFSET EVENT_POINTER_SCHEMA_OFFSET + 2
        MONO_MT_UINT32,     /* "Flags" }, */
        MONO_MT_TABLE_IDX,  /* "TypeDefId" }, */
        MONO_MT_STRING_IDX, /* "TypeName" }, */
@@ -204,7 +208,11 @@
        MONO_MT_TABLE_IDX,  /* "Field:Field" }, */
        MONO_MT_END,
 
-#define FILE_SCHEMA_OFFSET FIELD_RVA_SCHEMA_OFFSET + 3
+#define FIELD_POINTER_SCHEMA_OFFSET FIELD_RVA_SCHEMA_OFFSET + 3
+       MONO_MT_TABLE_IDX,  /* "Field" }, */
+       MONO_MT_END,
+
+#define FILE_SCHEMA_OFFSET FIELD_POINTER_SCHEMA_OFFSET + 2
        MONO_MT_UINT32,     /* "Flags" }, */
        MONO_MT_STRING_IDX, /* "Name" }, */
        MONO_MT_BLOB_IDX,   /* "Value" },  */
@@ -256,7 +264,11 @@
        MONO_MT_HS_IDX,     /* "Association" }, */
        MONO_MT_END,
 
-#define MODULE_SCHEMA_OFFSET METHOD_SEMA_SCHEMA_OFFSET + 4
+#define METHOD_POINTER_SCHEMA_OFFSET METHOD_SEMA_SCHEMA_OFFSET + 4
+       MONO_MT_TABLE_IDX,  /* "Method" }, */
+       MONO_MT_END,
+
+#define MODULE_SCHEMA_OFFSET METHOD_POINTER_SCHEMA_OFFSET + 2
        MONO_MT_UINT16,     /* "Generation" }, */
        MONO_MT_STRING_IDX, /* "Name" }, */
        MONO_MT_GUID_IDX,   /* "MVID" }, */
@@ -279,7 +291,11 @@
        MONO_MT_STRING_IDX, /* "Name" }, */
        MONO_MT_END,
 
-#define PROPERTY_SCHEMA_OFFSET PARAM_SCHEMA_OFFSET + 4
+#define PARAM_POINTER_SCHEMA_OFFSET PARAM_SCHEMA_OFFSET + 4
+       MONO_MT_TABLE_IDX,  /* "Param" }, */
+       MONO_MT_END,
+
+#define PROPERTY_SCHEMA_OFFSET PARAM_POINTER_SCHEMA_OFFSET + 2
        MONO_MT_UINT16,     /* "Flags" }, */
        MONO_MT_STRING_IDX, /* "Name" }, */
        MONO_MT_BLOB_IDX,   /* "Type" }, */
@@ -340,11 +356,11 @@
        MODULE_SCHEMA_OFFSET,
        TYPEREF_SCHEMA_OFFSET,
        TYPEDEF_SCHEMA_OFFSET,
-       NULL_SCHEMA_OFFSET,
+       FIELD_POINTER_SCHEMA_OFFSET,
        FIELD_SCHEMA_OFFSET,
-       NULL_SCHEMA_OFFSET,
+       METHOD_POINTER_SCHEMA_OFFSET,
        METHOD_SCHEMA_OFFSET,
-       NULL_SCHEMA_OFFSET,
+       PARAM_POINTER_SCHEMA_OFFSET,
        PARAM_SCHEMA_OFFSET,
        IFACEMAP_SCHEMA_OFFSET,
        MEMBERREF_SCHEMA_OFFSET, /* 0xa */
@@ -356,7 +372,7 @@
        FIELD_LAYOUT_SCHEMA_OFFSET, /* 0x10 */
        STDALON_SIG_SCHEMA_OFFSET,
        EVENTMAP_SCHEMA_OFFSET,
-       NULL_SCHEMA_OFFSET,
+       EVENT_POINTER_SCHEMA_OFFSET,
        EVENT_SCHEMA_OFFSET,
        PROPERTY_MAP_SCHEMA_OFFSET,
        NULL_SCHEMA_OFFSET,
@@ -512,6 +528,9 @@
                                field_size = MAX (idx_size 
(MONO_TABLE_TYPEDEF), idx_size(MONO_TABLE_TYPEREF));
                                field_size = MAX (field_size, 
idx_size(MONO_TABLE_TYPESPEC));
                                break;
+                       case MONO_TABLE_EVENT_POINTER:
+                               g_assert (i == 0);
+                               field_size = idx_size (MONO_TABLE_EVENT); break;
                        case MONO_TABLE_EXPORTEDTYPE:
                                g_assert (i == 1);
                                /* the index is in another metadata file, so it 
must be 4 */
@@ -522,6 +541,9 @@
                        case MONO_TABLE_FIELDRVA:
                                g_assert (i == 1);
                                field_size = idx_size (MONO_TABLE_FIELD); break;
+                       case MONO_TABLE_FIELD_POINTER:
+                               g_assert (i == 0);
+                               field_size = idx_size (MONO_TABLE_FIELD); break;
                        case MONO_TABLE_IMPLMAP:
                                g_assert (i == 3);
                                field_size = idx_size (MONO_TABLE_MODULEREF); 
break;
@@ -537,9 +559,15 @@
                        case MONO_TABLE_METHODSEMANTICS:
                                g_assert (i == 1);
                                field_size = idx_size (MONO_TABLE_METHOD); 
break;
+                       case MONO_TABLE_METHOD_POINTER:
+                               g_assert (i == 0);
+                               field_size = idx_size (MONO_TABLE_METHOD); 
break;
                        case MONO_TABLE_NESTEDCLASS:
                                g_assert (i == 0 || i == 1);
                                field_size = idx_size (MONO_TABLE_TYPEDEF); 
break;
+                       case MONO_TABLE_PARAM_POINTER:
+                               g_assert (i == 0);
+                               field_size = idx_size (MONO_TABLE_PARAM); break;
                        case MONO_TABLE_PROPERTYMAP:
                                g_assert (i == 0 || i == 1);
                                field_size = i ? idx_size (MONO_TABLE_PROPERTY):
@@ -967,6 +995,7 @@
        }
        return 0;
 }
+
 /**
  * mono_metadata_decode_blob_size:
  * @ptr: pointer to a blob object
@@ -1068,6 +1097,76 @@
        return ival - 0x20000000;
 }
 
+/* 
+ * Translates the given 1-based index into the Method, Field, Event, or Param 
tables
+ * using the *Ptr tables in uncompressed metadata, if they are available.
+ *
+ * FIXME: The caller is not forced to call this function, which is 
error-prone, since 
+ * forgetting to call it would only show up as a bug on uncompressed metadata.
+ */
+guint32
+mono_metadata_translate_token_index (MonoImage *image, int table, guint32 idx)
+{
+       if (!image->uncompressed_metadata)
+               return idx;
+
+       switch (table) {
+       case MONO_TABLE_METHOD:
+               if (image->tables [MONO_TABLE_METHOD_POINTER].rows)
+                       return mono_metadata_decode_row_col (&image->tables 
[MONO_TABLE_METHOD_POINTER], idx - 1, MONO_METHOD_POINTER_METHOD);
+               else
+                       return idx;
+       case MONO_TABLE_FIELD:
+               if (image->tables [MONO_TABLE_FIELD_POINTER].rows)
+                       return mono_metadata_decode_row_col (&image->tables 
[MONO_TABLE_FIELD_POINTER], idx - 1, MONO_FIELD_POINTER_FIELD);
+               else
+                       return idx;
+       case MONO_TABLE_EVENT:
+               if (image->tables [MONO_TABLE_EVENT_POINTER].rows)
+                       return mono_metadata_decode_row_col (&image->tables 
[MONO_TABLE_EVENT_POINTER], idx - 1, MONO_EVENT_POINTER_EVENT);
+               else
+                       return idx;
+       case MONO_TABLE_PARAM:
+               if (image->tables [MONO_TABLE_PARAM_POINTER].rows)
+                       return mono_metadata_decode_row_col (&image->tables 
[MONO_TABLE_PARAM_POINTER], idx - 1, MONO_PARAM_POINTER_PARAM);
+               else
+                       return idx;
+       default:
+               return idx;
+       }
+}
+
+/**
+ * mono_metadata_decode_table_row:
+ *
+ *   Same as mono_metadata_decode_row, but takes an IMAGE+TABLE ID pair, and 
takes
+ * uncompressed metadata into account, so it should be used to access the
+ * Method, Field, Param and Event tables.
+ */
+void
+mono_metadata_decode_table_row (MonoImage *image, int table, int idx, guint32 
*res, int res_size)
+{
+       if (image->uncompressed_metadata)
+               idx = mono_metadata_translate_token_index (image, table, idx + 
1) - 1;
+
+       mono_metadata_decode_row (&image->tables [table], idx, res, res_size);
+}
+
+/**
+ * mono_metadata_decode_table_row_col:
+ *
+ *   Same as mono_metadata_decode_row_col, but takes an IMAGE+TABLE ID pair, 
and takes
+ * uncompressed metadata into account, so it should be used to access the
+ * Method, Field, Param and Event tables.
+ */
+guint32 mono_metadata_decode_table_row_col (MonoImage *image, int table, int 
idx, guint col)
+{
+       if (image->uncompressed_metadata)
+               idx = mono_metadata_translate_token_index (image, table, idx + 
1) - 1;
+
+       return mono_metadata_decode_row_col (&image->tables [table], idx, col);
+}
+
 /*
  * mono_metadata_parse_typedef_or_ref:
  * @m: a metadata context.

Modified: trunk/mono/mono/metadata/metadata.h
===================================================================
--- trunk/mono/mono/metadata/metadata.h 2006-10-05 14:36:49 UTC (rev 66290)
+++ trunk/mono/mono/metadata/metadata.h 2006-10-05 14:53:21 UTC (rev 66291)
@@ -512,6 +512,17 @@
 
 guint32 mono_metadata_declsec_from_index (MonoImage *meta, guint32 idx);
 
+guint32 mono_metadata_translate_token_index (MonoImage *image, int table, 
guint32 idx);
+
+void    mono_metadata_decode_table_row (MonoImage *image, int table,
+                                      int                    idx,
+                                      guint32               *res,
+                                      int                    res_size);
+
+guint32      mono_metadata_decode_table_row_col (MonoImage *image, int table,
+                                          int            idx, 
+                                          guint          col);
+
 G_END_DECLS
 
 #endif /* __MONO_METADATA_H__ */

Modified: trunk/mono/mono/metadata/row-indexes.h
===================================================================
--- trunk/mono/mono/metadata/row-indexes.h      2006-10-05 14:36:49 UTC (rev 
66290)
+++ trunk/mono/mono/metadata/row-indexes.h      2006-10-05 14:53:21 UTC (rev 
66291)
@@ -102,6 +102,11 @@
 };
 
 enum {
+       MONO_EVENT_POINTER_EVENT,
+       MONO_EVENT_POINTER_SIZE
+};
+
+enum {
        MONO_EXP_TYPE_FLAGS,
        MONO_EXP_TYPE_TYPEDEF,
        MONO_EXP_TYPE_NAME,
@@ -130,6 +135,11 @@
 };
 
 enum {
+       MONO_FIELD_POINTER_FIELD,
+       MONO_FIELD_POINTER_SIZE
+};
+
+enum {
        MONO_FIELD_RVA_RVA,
        MONO_FIELD_RVA_FIELD,
        MONO_FIELD_RVA_SIZE
@@ -189,6 +199,11 @@
 };
 
 enum {
+       MONO_METHOD_POINTER_METHOD,
+       MONO_METHOD_POINTER_SIZE
+};
+
+enum {
        MONO_METHOD_SEMA_SEMANTICS,
        MONO_METHOD_SEMA_METHOD,
        MONO_METHOD_SEMA_ASSOCIATION,
@@ -223,6 +238,11 @@
 };
 
 enum {
+       MONO_PARAM_POINTER_PARAM,
+       MONO_PARAM_POINTER_SIZE
+};
+
+enum {
        MONO_PROPERTY_FLAGS,
        MONO_PROPERTY_NAME,
        MONO_PROPERTY_TYPE,

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to