2008-01-09 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / image.c
index f0223a25c7d86498065ae6ddc8b817967eb54ace..86e125ea460bb6b2af856c13b646c0ce749c05fe 100644 (file)
@@ -599,6 +599,7 @@ mono_image_init (MonoImage *image)
                g_hash_table_new ((GHashFunc)mono_signature_hash, 
                                  (GCompareFunc)mono_metadata_signature_equal);
        
+       image->runtime_invoke_direct_cache = g_hash_table_new (mono_aligned_addr_hash, NULL);
        image->managed_wrapper_cache = g_hash_table_new (mono_aligned_addr_hash, NULL);
        image->native_wrapper_cache = g_hash_table_new (mono_aligned_addr_hash, NULL);
        image->remoting_invoke_cache = g_hash_table_new (mono_aligned_addr_hash, NULL);
@@ -1276,6 +1277,7 @@ mono_image_close (MonoImage *image)
        g_hash_table_foreach (image->remoting_invoke_cache, free_remoting_wrappers, NULL);
        g_hash_table_destroy (image->remoting_invoke_cache);
        g_hash_table_destroy (image->runtime_invoke_cache);
+       g_hash_table_destroy (image->runtime_invoke_direct_cache);
        g_hash_table_destroy (image->synchronized_cache);
        g_hash_table_destroy (image->unbox_wrapper_cache);
        g_hash_table_destroy (image->cominterop_invoke_cache);
@@ -1297,6 +1299,9 @@ mono_image_close (MonoImage *image)
        g_hash_table_destroy (image->helper_signatures);
        g_hash_table_destroy (image->method_signatures);
 
+       if (image->generic_class_cache)
+               g_hash_table_destroy (image->generic_class_cache);
+
        if (image->interface_bitset) {
                mono_unload_interface_ids (image->interface_bitset);
                mono_bitset_free (image->interface_bitset);