Merge pull request #2780 from alexanderkyte/seq_point_optimize
[mono.git] / mono / metadata / metadata.h
index 0a61a2dc10aca05696f8172783b03c6964c980bf..6a5172d8810d4b3c4e6d0400952e663f01381184 100644 (file)
 
 MONO_BEGIN_DECLS
 
-/*
- * When embedding, you have to define MONO_ZERO_LEN_ARRAY before including any
- * other Mono header file if you use a different compiler from the one used to
- * build Mono.
- */
-#ifndef MONO_ZERO_LEN_ARRAY
-#ifdef __GNUC__
-#define MONO_ZERO_LEN_ARRAY 0
-#else
-#define MONO_ZERO_LEN_ARRAY 1
-#endif
-#endif
-
 #define MONO_TYPE_ISSTRUCT(t) mono_type_is_struct (t)
 #define MONO_TYPE_IS_VOID(t) mono_type_is_void (t)
 #define MONO_TYPE_IS_POINTER(t) mono_type_is_pointer (t)
@@ -178,6 +165,8 @@ typedef enum {
        MONO_MARSHAL_CONV_HANDLEREF
 } MonoMarshalConv;
 
+#define MONO_MARSHAL_CONV_INVALID ((MonoMarshalConv)-1)
+
 typedef struct {
        MonoMarshalNative native;
        union {
@@ -312,7 +301,10 @@ typedef struct {
 
 struct _MonoArrayType {
        MonoClass *eklass;
+       // Number of dimensions of the array
        uint8_t rank;
+
+       // Arrays recording known upper and lower index bounds for each dimension
        uint8_t numsizes;
        uint8_t numlobounds;
        int *sizes;
@@ -390,21 +382,25 @@ MONO_API int            mono_metadata_parse_custom_mod  (MonoImage      *m,
                                                MonoCustomMod   *dest,
                                                const char      *ptr,
                                                const char     **rptr);
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoArrayType *mono_metadata_parse_array       (MonoImage      *m,
                                                const char      *ptr,
                                                const char     **rptr);
 MONO_API void           mono_metadata_free_array        (MonoArrayType     *array);
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoType      *mono_metadata_parse_type        (MonoImage      *m,
                                                MonoParseTypeMode  mode,
                                                short              opt_attrs,
                                                const char        *ptr,
                                                const char       **rptr);
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoType      *mono_metadata_parse_param       (MonoImage      *m,
                                                const char      *ptr,
                                                const char      **rptr);
 MONO_API MonoType      *mono_metadata_parse_ret_type    (MonoImage      *m,
                                                const char      *ptr,
                                                const char      **rptr);
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoType      *mono_metadata_parse_field_type  (MonoImage      *m,
                                                short            field_flags,
                                                const char      *ptr,
@@ -429,6 +425,7 @@ MONO_API MonoMethodSignature  *mono_metadata_signature_alloc (MonoImage *image,
 
 MONO_API MonoMethodSignature  *mono_metadata_signature_dup (MonoMethodSignature *sig);
 
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoMethodSignature  *mono_metadata_parse_signature (MonoImage *image, 
                                                     uint32_t    token);
 
@@ -443,6 +440,7 @@ MONO_API mono_bool          mono_metadata_signature_equal (MonoMethodSignature *
 
 MONO_API unsigned int             mono_signature_hash (MonoMethodSignature *sig);
 
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoMethodHeader *mono_metadata_parse_mh (MonoImage *m, const char *ptr);
 MONO_API void              mono_metadata_free_mh  (MonoMethodHeader *mh);
 
@@ -485,6 +483,8 @@ MONO_API uint32_t mono_metadata_token_from_dor (uint32_t dor_index);
 
 MONO_API char *mono_guid_to_string (const uint8_t *guid);
 
+MONO_API char *mono_guid_to_string_minimal (const uint8_t *guid);
+
 MONO_API uint32_t mono_metadata_declsec_from_index (MonoImage *meta, uint32_t idx);
 
 MONO_API uint32_t mono_metadata_translate_token_index (MonoImage *image, int table, uint32_t idx);