size_t size;
/* check for overflow */
- if (len < 0 || len > ((SIZE_MAX - offsetof (MonoString, chars) - 2) / 2))
+ if (len < 0 || len > ((SIZE_MAX - G_STRUCT_OFFSET (MonoString, chars) - 2) / 2))
mono_gc_out_of_memory (-1);
- size = (offsetof (MonoString, chars) + ((len + 1) * 2));
+ size = (G_STRUCT_OFFSET (MonoString, chars) + ((len + 1) * 2));
g_assert (size > 0);
vtable = mono_class_vtable (domain, mono_defaults.string_class);
* mono_array_length_fast not using the object's vtable.
*/
if (klass == mono_defaults.string_class) {
- return offsetof (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
+ return G_STRUCT_OFFSET (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
} else if (klass->rank) {
MonoArray *array = (MonoArray*)o;
size_t size = sizeof (MonoArray) + klass->sizes.element_size * mono_array_length_fast (array);
SGEN_ASSERT (9, size >= sizeof (MonoObject), "Run length object size to small");
return size;
} else if (descr == SGEN_DESC_STRING) {
- return offsetof (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
+ return G_STRUCT_OFFSET (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
} else if (type == DESC_TYPE_VECTOR) {
int element_size = ((descr) >> VECTOR_ELSIZE_SHIFT) & MAX_ELEMENT_SIZE;
MonoArray *array = (MonoArray*)o;
{
int limit = mono_gc_get_los_limit ();
- return (limit - 2 - offsetof (MonoString, chars)) / 2;
+ return (limit - 2 - G_STRUCT_OFFSET (MonoString, chars)) / 2;
}
void