2009-11-25 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Wed, 25 Nov 2009 19:30:57 +0000 (19:30 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Wed, 25 Nov 2009 19:30:57 +0000 (19:30 -0000)
* class.c (inflate_generic_type): Change code to use new signature of
mono_error_set_bad_image.

Fixes #558124.

2009-11-25 Rodrigo Kumpera  <rkumpera@novell.com>

* mono-error-internals.h: Add mono_error_set_bad_image_name and change signature
of mono_error_set_bad_image to take a MonoImage instead of a const char *.

* mono-error.c: Same.

svn path=/trunk/mono/; revision=146936

mono/metadata/ChangeLog
mono/metadata/class.c
mono/utils/ChangeLog
mono/utils/mono-error-internals.h
mono/utils/mono-error.c

index aea218b93738b6b609bc7003ebaf8dd9353bec62..a293f435b2dcfa82326da43ba08d7fc5e5405752 100644 (file)
@@ -1,3 +1,10 @@
+2009-11-25  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (inflate_generic_type): Change code to use new signature of
+       mono_error_set_bad_image.
+
+       Fixes #558124.
+
 2009-11-25  Sebastien Pouliot  <sebastien@ximian.com> 
 
        * verify.c (mono_method_verify): Don't free ctx.params items if 
index 31ea50cb80736133904df2ae6ba11d8e7a06d070..33e466fd720efe096f7457fa05abf500b1279308 100644 (file)
@@ -506,7 +506,7 @@ inflate_generic_type (MonoImage *image, MonoType *type, MonoGenericContext *cont
                        return NULL;
                if (num >= inst->type_argc) {
                        MonoGenericParamInfo *info = mono_generic_param_info (type->data.generic_param);
-                       mono_error_set_bad_image (error, image->module_name, "MVAR %d (%s) cannot be expanded in this context with %d instantiations",
+                       mono_error_set_bad_image (error, image, "MVAR %d (%s) cannot be expanded in this context with %d instantiations",
                                num, info ? info->name : "", inst->type_argc);
                        return NULL;
                }
@@ -529,7 +529,7 @@ inflate_generic_type (MonoImage *image, MonoType *type, MonoGenericContext *cont
                        return NULL;
                if (num >= inst->type_argc) {
                        MonoGenericParamInfo *info = mono_generic_param_info (type->data.generic_param);
-                       mono_error_set_bad_image (error, image->module_name, "VAR %d (%s) cannot be expanded in this context with %d instantiations",
+                       mono_error_set_bad_image (error, image, "VAR %d (%s) cannot be expanded in this context with %d instantiations",
                                num, info ? info->name : "", inst->type_argc);
                        return NULL;
                }
index 4543ada85b9ea639f0719b4e1112eabd41f7e8a5..a567f81770e09c9bb43653c77856e562167d2e31 100644 (file)
@@ -1,3 +1,10 @@
+2009-11-25 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mono-error-internals.h: Add mono_error_set_bad_image_name and change signature
+       of mono_error_set_bad_image to take a MonoImage instead of a const char *.
+
+       * mono-error.c: Same.
+
 2009-11-25  Zoltan Varga  <vargaz@gmail.com>
 
        * mono-hash.c (mono_g_hash_table_find): Implement this.
index c5a1c12c580f0e693240ce270d49cea9c4db3eed..10761e0d160bb945f0e803c1c535fa2c9bc0f7f9 100644 (file)
@@ -45,7 +45,10 @@ void
 mono_error_set_field_load (MonoError *error, MonoClass *klass, const char *field_name, const char *msg_format, ...) MONO_INTERNAL;
 
 void
-mono_error_set_bad_image (MonoError *error, const char *file_name, const char *msg_format, ...) MONO_INTERNAL;
+mono_error_set_bad_image (MonoError *error, MonoImage *image, const char *msg_format, ...) MONO_INTERNAL;
+
+void
+mono_error_set_bad_image_name (MonoError *error, const char *file_name, const char *msg_format, ...) MONO_INTERNAL;
 
 void
 mono_error_set_out_of_memory (MonoError *error, const char *msg_format, ...) MONO_INTERNAL;
index 6f99b2c974e170b627268d0eb97e9b96241b23b1..7f4cdc7e5d039f1f2ccd32f5506919631d52f019 100644 (file)
@@ -233,7 +233,7 @@ mono_error_set_field_load (MonoError *oerror, MonoClass *klass, const char *fiel
 }
 
 void
-mono_error_set_bad_image (MonoError *oerror, const char *assembly_name, const char *msg_format, ...)
+mono_error_set_bad_image_name (MonoError *oerror, const char *assembly_name, const char *msg_format, ...)
 {
        MonoErrorInternal *error = (MonoErrorInternal*)oerror;
        mono_error_prepare (error);
@@ -243,6 +243,17 @@ mono_error_set_bad_image (MonoError *oerror, const char *assembly_name, const ch
        set_error_message ();
 }
 
+void
+mono_error_set_bad_image (MonoError *oerror, MonoImage *image, const char *msg_format, ...)
+{
+       MonoErrorInternal *error = (MonoErrorInternal*)oerror;
+       mono_error_prepare (error);
+
+       error->error_code = MONO_ERROR_BAD_IMAGE;
+       error->assembly_name = image ? mono_image_get_name (image) : "<no_image>";
+       set_error_message ();
+}
+
 void
 mono_error_set_generic_error (MonoError *oerror, const char * name_space, const char *name, const char *msg_format, ...)
 {