[runtime] Fix pedump by using the normal embedding APIs instead of initializing parts...
authorZoltan Varga <vargaz@gmail.com>
Mon, 29 Aug 2016 20:37:22 +0000 (22:37 +0200)
committerZoltan Varga <vargaz@gmail.com>
Mon, 29 Aug 2016 20:37:31 +0000 (22:37 +0200)
tools/pedump/Makefile.am
tools/pedump/pedump.c

index d329d1fa9b1ef53418183e0197558dbd0f999187..3c9ccc4a77b991f635082ea58d69dec80d309b2f 100644 (file)
@@ -21,6 +21,7 @@ pedump_LDADD =                        \
        $(top_builddir)/mono/sgen/libmonosgen-static.la \
        $(top_builddir)/mono/io-layer/libwapi.la        \
        $(top_builddir)/mono/utils/libmonoutils.la \
+       $(top_builddir)/mono/mini/libmini.la \
        $(LLVM_LIBS)                    \
        $(LLVM_LDFLAGS)                 \
        $(GLIB_LIBS)                    \
index 4bbcc699335a9bc8bd75a9e8e5376de774b74580..62ae54f5367513f834adf34e2bbe48b78e8bafdb 100644 (file)
@@ -26,6 +26,7 @@
 #include <mono/metadata/class-internals.h>
 #include <mono/metadata/verify-internals.h>
 #include <mono/metadata/marshal.h>
+#include <mono/mini/jit.h>
 #include "mono/utils/mono-digest.h"
 #include <mono/utils/mono-mmap.h>
 #include <mono/utils/mono-counters.h>
@@ -425,6 +426,8 @@ verify_image_file (const char *fname)
                "Ok", "Error", "Warning", NULL, "CLS", NULL, NULL, NULL, "Not Verifiable"
        };
 
+       mono_jit_init_version ("pedump", NULL);
+
        image = mono_image_open_raw (fname, &status);
        if (!image) {
                printf ("Could not open %s\n", fname);
@@ -459,22 +462,9 @@ verify_image_file (const char *fname)
        image->assembly = assembly;
        mono_assembly_fill_assembly_name (image, &assembly->aname);
 
-       /*Finish initializing the runtime*/
-       mono_install_assembly_load_hook (pedump_assembly_load_hook, NULL);
-       mono_install_assembly_search_hook (pedump_assembly_search_hook, NULL);
-
-       mono_init_version ("pedump", image->version);
-
-       mono_install_assembly_preload_hook (pedump_preload, GUINT_TO_POINTER (FALSE));
-
-       mono_icall_init ();
-       mono_marshal_init ();
-
-
        if (!verify_partial_md && !mono_verifier_verify_full_table_data (image, &errors))
                goto invalid_image;
 
-
        table = &image->tables [MONO_TABLE_TYPEDEF];
        for (i = 1; i <= table->rows; ++i) {
                MonoError error;
@@ -653,15 +643,6 @@ main (int argc, char *argv [])
        
        if (!file)
                usage ();
-
-#ifndef DISABLE_PERFCOUNTERS
-       mono_perfcounters_init ();
-#endif
-       mono_counters_init ();
-       mono_metadata_init ();
-       mono_images_init ();
-       mono_assemblies_init ();
-       mono_loader_init ();
  
        if (verify_pe) {
                char *tok = strtok (flags, ",");