From: Zoltan Varga Date: Tue, 1 May 2007 14:27:28 +0000 (-0000) Subject: 2007-05-01 Zoltan Varga X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=6337ebb8d2697bfc15c2db4effc5e9b4f350af08;p=mono.git 2007-05-01 Zoltan Varga * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. Fixes #81501. svn path=/trunk/mono/; revision=76526 --- diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 5a9823a0b90..eb4dd31521c 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2007-05-01 Zoltan Varga + + * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. + Fixes #81501. + 2007-04-30 Zoltan Varga * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index dd3ada56723..a2bdfcef0dd 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -2678,7 +2678,7 @@ ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoAr if (pcount != mono_method_signature (m)->param_count) mono_raise_exception (mono_exception_from_name (mono_defaults.corlib, "System.Reflection", "TargetParameterCountException")); - if ((m->klass->flags & TYPE_ATTRIBUTE_ABSTRACT) && !strcmp (m->name, ".ctor")) + if ((m->klass->flags & TYPE_ATTRIBUTE_ABSTRACT) && !strcmp (m->name, ".ctor") && !this) mono_raise_exception (mono_exception_from_name_msg (mono_defaults.corlib, "System", "MethodAccessException", "Cannot invoke constructor of an abstract class.")); if (m->klass->image->assembly->ref_only)