Merge pull request #2803 from BrzVlad/feature-conc-pinned-scan
[mono.git] / mono / metadata / pedump.c
index e2e3fdff79fe388496a7fd12b060b1e037f1787a..eac9bfba360a0fb62258c16efe8afbcb53206698 100644 (file)
@@ -6,6 +6,7 @@
  *
  * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
  * Copyright 2004-2009 Novell, Inc (http://www.novell.com)
+ * Licensed under the MIT license. See LICENSE file in the project root for full license information.
  */
 #include <config.h>
 #include <stdio.h>
@@ -333,7 +334,7 @@ dump_methoddef (MonoImage *metadata, guint32 token)
 static void
 dump_dotnet_iinfo (MonoImage *image)
 {
-       MonoCLIImageInfo *iinfo = image->image_info;
+       MonoCLIImageInfo *iinfo = (MonoCLIImageInfo *)image->image_info;
 
        dump_dotnet_header (&iinfo->cli_header);
        dump_sections (iinfo);
@@ -361,7 +362,6 @@ dump_verify_info (MonoImage *image, int flags)
                for (i = 0; i < m->rows; ++i) {
                        MonoMethod *method;
                        MonoError error;
-                       mono_loader_clear_error ();
 
                        method = mono_get_method_checked (image, MONO_TOKEN_METHOD_DEF | (i+1), NULL, NULL, &error);
                        if (!method) {
@@ -385,7 +385,7 @@ dump_verify_info (MonoImage *image, int flags)
                        }
 
                        for (tmp = errors; tmp; tmp = tmp->next) {
-                               MonoVerifyInfo *info = tmp->data;
+                               MonoVerifyInfo *info = (MonoVerifyInfo *)tmp->data;
                                g_print ("%s: %s\n", desc [info->status], info->message);
                                if (info->status == MONO_VERIFY_ERROR) {
                                        count++;
@@ -467,6 +467,7 @@ verify_image_file (const char *fname)
 
        mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE));
 
+       mono_icall_init ();
        mono_marshal_init ();
 
 
@@ -485,16 +486,14 @@ verify_image_file (const char *fname)
                        continue;
                }
                mono_class_init (klass);
-               if (klass->exception_type != MONO_EXCEPTION_NONE || mono_loader_get_last_error ()) {
+               if (mono_class_has_failure (klass)) {
                        printf ("Error verifying class(0x%08x) %s.%s a type load error happened\n", token, klass->name_space, klass->name);
-                       mono_loader_clear_error ();
                        ++count;
                }
 
                mono_class_setup_vtable (klass);
-               if (klass->exception_type != MONO_EXCEPTION_NONE || mono_loader_get_last_error ()) {
+               if (mono_class_has_failure (klass)) {
                        printf ("Error verifying class(0x%08x) %s.%s a type load error happened\n", token, klass->name_space, klass->name);
-                       mono_loader_clear_error ();
                        ++count;
                }
        }
@@ -504,7 +503,7 @@ verify_image_file (const char *fname)
 
 invalid_image:
        for (tmp = errors; tmp; tmp = tmp->next) {
-               MonoVerifyInfo *info = tmp->data;
+               MonoVerifyInfo *info = (MonoVerifyInfo *)tmp->data;
                g_print ("%s: %s\n", desc [info->status], info->message);
                if (info->status == MONO_VERIFY_ERROR)
                        count++;
@@ -610,7 +609,7 @@ pedump_assembly_search_hook (MonoAssemblyName *aname, gpointer user_data)
         GList *tmp;
 
        for (tmp = loaded_assemblies; tmp; tmp = tmp->next) {
-               MonoAssembly *ass = tmp->data;
+               MonoAssembly *ass = (MonoAssembly *)tmp->data;
                if (mono_assembly_names_equal (aname, &ass->aname))
                       return ass;
        }