ICALL_EXPORT gint32
ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this_obj, MonoArray **fields)
{
+ MonoError error;
MonoClass *klass;
MonoObject **values = NULL;
MonoObject *o;
default:
if (!values)
values = g_newa (MonoObject*, mono_class_num_fields (klass));
- o = mono_field_get_value_object (mono_object_domain (this_obj), field, this_obj);
+ o = mono_field_get_value_object_checked (mono_object_domain (this_obj), field, this_obj, &error);
+ if (!is_ok (&error)) {
+ mono_error_set_pending_exception (&error);
+ return 0;
+ }
values [count++] = o;
}
}
ICALL_EXPORT MonoBoolean
ves_icall_System_ValueType_Equals (MonoObject *this_obj, MonoObject *that, MonoArray **fields)
{
+ MonoError error;
MonoClass *klass;
MonoObject **values = NULL;
MonoObject *o;
default:
if (!values)
values = g_newa (MonoObject*, mono_class_num_fields (klass) * 2);
- o = mono_field_get_value_object (mono_object_domain (this_obj), field, this_obj);
+ o = mono_field_get_value_object_checked (mono_object_domain (this_obj), field, this_obj, &error);
+ if (!is_ok (&error)) {
+ mono_error_set_pending_exception (&error);
+ return FALSE;
+ }
values [count++] = o;
- o = mono_field_get_value_object (mono_object_domain (this_obj), field, that);
+ o = mono_field_get_value_object_checked (mono_object_domain (this_obj), field, that, &error);
+ if (!is_ok (&error)) {
+ mono_error_set_pending_exception (&error);
+ return FALSE;
+ }
values [count++] = o;
}
ICALL_EXPORT MonoObject *
ves_icall_MonoField_GetValueInternal (MonoReflectionField *field, MonoObject *obj)
{
+ MonoError error;
MonoClass *fklass = field->klass;
MonoClassField *cf = field->field;
MonoDomain *domain = mono_object_domain (field);
if (mono_security_core_clr_enabled ())
mono_security_core_clr_ensure_reflection_access_field (cf);
- return mono_field_get_value_object (domain, cf, obj);
+ MonoObject * result = mono_field_get_value_object_checked (domain, cf, obj, &error);
+ mono_error_set_pending_exception (&error);
+ return result;
}
ICALL_EXPORT void