mono_marshal_load_type_info (klass);
- if (klass->marshal_info->str_to_ptr)
- return klass->marshal_info->str_to_ptr;
+ if (mono_class_get_marshal_info (klass)->str_to_ptr)
+ return mono_class_get_marshal_info (klass)->str_to_ptr;
if (!stoptr)
stoptr = mono_class_get_method_from_name (mono_defaults.marshal_class, "StructureToPtr", 3);
mono_mb_free (mb);
mono_marshal_lock ();
- if (!klass->marshal_info->str_to_ptr)
- klass->marshal_info->str_to_ptr = res;
+ if (!mono_class_get_marshal_info (klass)->str_to_ptr)
+ mono_class_get_marshal_info (klass)->str_to_ptr = res;
else
- res = klass->marshal_info->str_to_ptr;
+ res = mono_class_get_marshal_info (klass)->str_to_ptr;
mono_marshal_unlock ();
return res;
}
mono_marshal_load_type_info (klass);
- if (klass->marshal_info->ptr_to_str)
- return klass->marshal_info->ptr_to_str;
+ if (mono_class_get_marshal_info (klass)->ptr_to_str)
+ return mono_class_get_marshal_info (klass)->ptr_to_str;
if (!ptostr) {
MonoMethodSignature *sig;
mono_mb_free (mb);
mono_marshal_lock ();
- if (!klass->marshal_info->ptr_to_str)
- klass->marshal_info->ptr_to_str = res;
+ if (!mono_class_get_marshal_info (klass)->ptr_to_str)
+ mono_class_get_marshal_info (klass)->ptr_to_str = res;
else
- res = klass->marshal_info->ptr_to_str;
+ res = mono_class_get_marshal_info (klass)->ptr_to_str;
mono_marshal_unlock ();
return res;
}
/**
* mono_marshal_load_type_info:
*
- * Initialize klass->marshal_info using information from metadata. This function can
+ * Initialize klass::marshal_info using information from metadata. This function can
* recursively call itself, and the caller is responsible to avoid that by calling
* mono_marshal_is_loading_type_info () beforehand.
*
g_assert (klass != NULL);
- if (klass->marshal_info)
- return klass->marshal_info;
+ if (mono_class_get_marshal_info (klass))
+ return mono_class_get_marshal_info (klass);
if (!klass->inited)
mono_class_init (klass);
- if (klass->marshal_info)
- return klass->marshal_info;
+ if (mono_class_get_marshal_info (klass))
+ return mono_class_get_marshal_info (klass);
/*
* This function can recursively call itself, so we keep the list of classes which are
mono_native_tls_set_value (load_type_info_tls_id, loads_list);
mono_marshal_lock ();
- if (!klass->marshal_info) {
+ if (!mono_class_get_marshal_info (klass)) {
/*We do double-checking locking on marshal_info */
mono_memory_barrier ();
- klass->marshal_info = info;
+ mono_class_set_marshal_info (klass, info);
++class_marshal_info_count;
}
mono_marshal_unlock ();
- return klass->marshal_info;
+ return mono_class_get_marshal_info (klass);
}
/**
gint32
mono_class_native_size (MonoClass *klass, guint32 *align)
{
- if (!klass->marshal_info) {
+ if (!mono_class_get_marshal_info (klass)) {
if (mono_marshal_is_loading_type_info (klass)) {
if (align)
*align = 0;
}
if (align)
- *align = klass->marshal_info->min_align;
+ *align = mono_class_get_marshal_info (klass)->min_align;
- return klass->marshal_info->native_size;
+ return mono_class_get_marshal_info (klass)->native_size;
}
/*