2004-09-06 Zoltan Varga <vargaz@freemail.hu>
authorZoltan Varga <vargaz@gmail.com>
Mon, 6 Sep 2004 12:09:05 +0000 (12:09 -0000)
committerZoltan Varga <vargaz@gmail.com>
Mon, 6 Sep 2004 12:09:05 +0000 (12:09 -0000)
* get.c: Fix printing of unmanaged calling conventions.
(get_constant): Fix warning.

svn path=/trunk/mono/; revision=33390

mono/dis/ChangeLog
mono/dis/get.c

index 77c359da7dcb25fef3d9b2c51a51b2c0112b1e18..2f929400e4e90bcf74c8d8c885128d638fc68c02 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * get.c: Fix printing of unmanaged calling conventions.
+       (get_constant): Fix warning.
+
 2004-08-28  Jambunathan K  <kjambunathan@novell.com>
        * main.c: modified cattrs_for_method so that
          emitting of ".param[] = ..." is complete.
index 09cbf18009390efaeb3dbdfdb709ff90ea2e0360..db0caeb57d41db43e6c4e0d96f79deb2447c8934 100644 (file)
@@ -458,10 +458,10 @@ static dis_map_t element_type_map [] = {
 
 static dis_map_t call_conv_type_map [] = {
        { MONO_CALL_DEFAULT     , "default" },
-       { MONO_CALL_C           , "c" },
-       { MONO_CALL_STDCALL     , "stdcall" },
-       { MONO_CALL_THISCALL    , "thiscall" },
-       { MONO_CALL_FASTCALL    , "fastcall" },
+       { MONO_CALL_C           , "unmanaged cdecl" },
+       { MONO_CALL_STDCALL     , "unmanaged stdcall" },
+       { MONO_CALL_THISCALL    , "unmanaged thiscall" },
+       { MONO_CALL_FASTCALL    , "unmanaged fastcall" },
        { MONO_CALL_VARARG      , "vararg" },
        { 0, NULL }
 };
@@ -1197,18 +1197,14 @@ get_methodref_signature (MonoImage *m, guint32 blob_signature, const char *fancy
        GString *res = g_string_new ("");
        const char *ptr = mono_metadata_blob_heap (m, blob_signature);
        char *allocated_ret_type, *s;
-       gboolean has_vararg = 0, seen_vararg = 0;
+       const char *cconv_str;
+       gboolean seen_vararg = 0;
        int param_count, signature_len;
        int i, gen_count = 0;
        int cconv;
        
        signature_len = mono_metadata_decode_value (ptr, &ptr);
 
-       if (*ptr & 0x05){
-               g_string_append (res, "vararg ");
-               has_vararg = 1;
-       }
-
        if (*ptr & 0x20){
                if (*ptr & 0x40)
                        g_string_append (res, "explicit-this ");
@@ -1219,6 +1215,12 @@ get_methodref_signature (MonoImage *m, guint32 blob_signature, const char *fancy
        if (*ptr & 0x10)
                gen_count = 1;
        cconv = *ptr & 0x0f;
+       cconv_str = map (cconv, call_conv_type_map);
+       if (strcmp (cconv_str, "default") != 0) {
+               g_string_append (res, cconv_str);
+               g_string_append (res, " ");
+       }
+
        ptr++;
        if (gen_count)
                gen_count = mono_metadata_decode_value (ptr, &ptr);
@@ -1610,7 +1612,7 @@ get_constant (MonoImage *m, MonoTypeEnum t, guint32 blob_index)
        const unsigned char *ptr = mono_metadata_blob_heap (m, blob_index);
        int len;
        
-       len = mono_metadata_decode_value (ptr, &ptr);
+       len = mono_metadata_decode_value (ptr, (const char**)&ptr);
        
        switch (t){
        case MONO_TYPE_BOOLEAN: