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)
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);
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 */