2004-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mono / metadata / domain.c
index ccbb36afbd81b8cff26442b8191031f81511eb94..8eea630cf79897635adf5c2fb3c3cb730b1ac018 100644 (file)
@@ -137,6 +137,8 @@ ldstr_hash (const char* str)
 static gboolean
 ldstr_equal (const char *str1, const char *str2) {
        int len, len2;
+       if (str1 == str2)
+               return TRUE;
        len = mono_metadata_decode_blob_size (str1, NULL) - 1;
        len2 = mono_metadata_decode_blob_size (str2, NULL) - 1;
        if (len != len2)
@@ -199,7 +201,7 @@ mono_domain_create (void)
        domain->env = mono_g_hash_table_new ((GHashFunc)mono_string_hash, (GCompareFunc)mono_string_equal);
        domain->assemblies = g_hash_table_new (g_str_hash, g_str_equal);
        domain->class_vtable_hash = mono_g_hash_table_new (NULL, NULL);
-       domain->proxy_vtable_hash = mono_g_hash_table_new (NULL, NULL);
+       domain->proxy_vtable_hash = mono_g_hash_table_new ((GHashFunc)mono_string_hash, (GCompareFunc)mono_string_equal);
        domain->static_data_hash = mono_g_hash_table_new (NULL, NULL);
        domain->jit_code_hash = g_hash_table_new (NULL, NULL);
        domain->ldstr_table = mono_g_hash_table_new ((GHashFunc)ldstr_hash, (GCompareFunc)ldstr_equal);
@@ -263,13 +265,16 @@ mono_init (const char *filename)
                switch (status){
                case MONO_IMAGE_ERROR_ERRNO:
                        g_print ("The assembly mscorlib.dll was not found or could not be loaded.\n");
-                       g_print ("It should have been installed in the `%s' directory.\n", MONO_ASSEMBLIES);
+                       g_print ("It should have been installed in the `%s' directory.\n",
+                                mono_assembly_getrootdir ());
                        break;
                case MONO_IMAGE_IMAGE_INVALID:
-                       g_print ("The file %s/mscorlib.dll is an invalid CIL image\n", MONO_ASSEMBLIES);
+                       g_print ("The file %s/mscorlib.dll is an invalid CIL image\n",
+                                mono_assembly_getrootdir ());
                        break;
                case MONO_IMAGE_MISSING_ASSEMBLYREF:
-                       g_print ("Minning assembly reference in %s/mscorlib.dll\n", MONO_ASSEMBLIES);
+                       g_print ("Missing assembly reference in %s/mscorlib.dll\n",
+                                mono_assembly_getrootdir ());
                        break;
                case MONO_IMAGE_OK:
                        /* to suppress compiler warning */