diff options
-rw-r--r-- | mono/metadata/ChangeLog | 5 | ||||
-rw-r--r-- | mono/metadata/reflection.c | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index d3736861c37..ee49f331226 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2004-09-06 Zoltan Varga <vargaz@freemail.hu> + + * reflection.c (mono_param_get_objects): Initialize the default value + with DBNull.Value, not null. Fixes #62123. + 2004-09-01 Miguel de Icaza <miguel@ximian.com> * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and diff --git a/mono/metadata/reflection.c b/mono/metadata/reflection.c index 965bdcdae58..fd45669436c 100644 --- a/mono/metadata/reflection.c +++ b/mono/metadata/reflection.c @@ -5322,12 +5322,21 @@ MonoArray* mono_param_get_objects (MonoDomain *domain, MonoMethod *method) { static MonoClass *System_Reflection_ParameterInfo; + static MonoClassField *dbnull_value_field; + MonoClass *klass; MonoArray *res = NULL; MonoReflectionMethod *member = NULL; MonoReflectionParameter *param = NULL; char **names; int i; + if (!dbnull_value_field) { + klass = mono_class_from_name (mono_defaults.corlib, "System", "DBNull"); + mono_class_init (klass); + dbnull_value_field = mono_class_get_field_from_name (klass, "Value"); + g_assert (dbnull_value_field); + } + if (!System_Reflection_ParameterInfo) System_Reflection_ParameterInfo = mono_class_from_name ( mono_defaults.corlib, "System.Reflection", "ParameterInfo"); @@ -5349,7 +5358,7 @@ mono_param_get_objects (MonoDomain *domain, MonoMethod *method) param = (MonoReflectionParameter *)mono_object_new (domain, System_Reflection_ParameterInfo); param->ClassImpl = mono_type_get_object (domain, method->signature->params [i]); - param->DefaultValueImpl = NULL; /* FIXME */ + param->DefaultValueImpl = mono_field_get_value_object (domain, dbnull_value_field, NULL); /* FIXME */ param->MemberImpl = (MonoObject*)member; param->NameImpl = mono_string_new (domain, names [i]); param->PositionImpl = i; |