Author: martin
Date: 2006-09-22 09:46:09 -0400 (Fri, 22 Sep 2006)
New Revision: 65814
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/class-internals.h
trunk/mono/mono/metadata/class.c
trunk/mono/mono/metadata/object.c
trunk/mono/mono/metadata/reflection.c
Log:
2006-09-22 Martin Baulig <[EMAIL PROTECTED]>
Revert Paolo's change from r65776.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2006-09-22 12:25:25 UTC (rev 65813)
+++ trunk/mono/mono/metadata/ChangeLog 2006-09-22 13:46:09 UTC (rev 65814)
@@ -1,3 +1,7 @@
+2006-09-22 Martin Baulig <[EMAIL PROTECTED]>
+
+ Revert Paolo's change from r65776.
+
2006-09-21 Gert Driesen <[EMAIL PROTECTED]>
* appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
@@ -10,12 +14,6 @@
* threadpool.c: (start_thread_or_queue) use the root domain when
creating the thread instead of the async object one.
-Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <[EMAIL PROTECTED]>
-
- * class.c, object.c, class-internals.h, reflection.c:
- for arrays, store element_size inside MonoClass (speedup
- for array object creation).
-
Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <[EMAIL PROTECTED]>
* icall.c: fixed CodeBase to use the file name and not the module
Modified: trunk/mono/mono/metadata/class-internals.h
===================================================================
--- trunk/mono/mono/metadata/class-internals.h 2006-09-22 12:25:25 UTC (rev
65813)
+++ trunk/mono/mono/metadata/class-internals.h 2006-09-22 13:46:09 UTC (rev
65814)
@@ -302,11 +302,8 @@
* Computed object instance size, total.
*/
int instance_size;
+ int class_size;
int vtable_size; /* number of slots */
- union {
- int class_size; /* size of area for static fields */
- int element_size; /* for array types */
- } sizes;
/*
* From the TypeDef table
Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c 2006-09-22 12:25:25 UTC (rev 65813)
+++ trunk/mono/mono/metadata/class.c 2006-09-22 13:46:09 UTC (rev 65814)
@@ -819,8 +819,7 @@
}
class->instance_size = 0;
- if (!class->rank)
- class->sizes.class_size = 0;
+ class->class_size = 0;
if (class->parent) {
/* For generic instances, class->parent might not have been
initialized */
@@ -1233,10 +1232,10 @@
continue;
size = mono_type_size (field->type, &align);
- field->offset = class->sizes.class_size;
+ field->offset = class->class_size;
field->offset += align - 1;
field->offset &= ~(align - 1);
- class->sizes.class_size = field->offset + size;
+ class->class_size = field->offset + size;
}
}
@@ -2435,7 +2434,7 @@
*/
if (has_cached_info) {
class->instance_size = cached_info.instance_size;
- class->sizes.class_size = cached_info.class_size;
+ class->class_size = cached_info.class_size;
class->packing_size = cached_info.packing_size;
class->min_align = cached_info.min_align;
class->blittable = cached_info.blittable;
@@ -3112,7 +3111,7 @@
if (gclass->generic_class.is_dynamic) {
klass->instance_size = gklass->instance_size;
- klass->sizes.class_size = gklass->sizes.class_size;
+ klass->class_size = gklass->class_size;
klass->size_inited = 1;
klass->inited = 1;
@@ -3472,7 +3471,7 @@
(eclass->flags & TYPE_ATTRIBUTE_VISIBILITY_MASK);
class->parent = parent;
class->instance_size = mono_class_instance_size (class->parent);
- class->sizes.element_size = mono_class_array_element_size (eclass);
+ class->class_size = 0;
mono_class_setup_supertypes (class);
if (mono_defaults.generic_ilist_class) {
@@ -3661,12 +3660,7 @@
if (!klass->inited)
mono_class_init (klass);
- /* in arrays, sizes.class_size is unioned with element_size
- * and arrays have no static fields
- */
- if (klass->rank)
- return 0;
- return klass->sizes.class_size;
+ return klass->class_size;
}
/*
@@ -4482,9 +4476,7 @@
gint32
mono_array_element_size (MonoClass *ac)
{
- g_assert (ac->rank);
- g_assert (ac->sizes.element_size);
- return ac->sizes.element_size;
+ return mono_class_array_element_size (ac->element_class);
}
gpointer
Modified: trunk/mono/mono/metadata/object.c
===================================================================
--- trunk/mono/mono/metadata/object.c 2006-09-22 12:25:25 UTC (rev 65813)
+++ trunk/mono/mono/metadata/object.c 2006-09-22 13:46:09 UTC (rev 65814)
@@ -490,7 +490,7 @@
int max_size;
if (static_fields)
- max_size = mono_class_data_size (class) / sizeof (gpointer);
+ max_size = class->class_size / sizeof (gpointer);
else
max_size = class->instance_size / sizeof (gpointer);
if (max_size > size) {
@@ -726,7 +726,7 @@
char *t;
int i;
gboolean inited = FALSE;
- guint32 vtable_size, class_size;
+ guint32 vtable_size;
guint32 cindex;
guint32 constant_cols [MONO_CONSTANT_SIZE];
gpointer iter;
@@ -785,7 +785,7 @@
#endif
vt->gc_descr = class->gc_descr;
- if ((class_size = mono_class_data_size (class))) {
+ if (class->class_size) {
if (class->has_static_refs) {
gpointer statics_gc_descr;
int max_set = 0;
@@ -793,16 +793,16 @@
gsize *bitmap;
bitmap = compute_class_bitmap (class, default_bitmap,
sizeof (default_bitmap) * 8, 0, &max_set, TRUE);
- /*g_print ("bitmap 0x%x for %s.%s (size: %d)\n", bitmap
[0], class->name_space, class->name, class_size);*/
+ /*g_print ("bitmap 0x%x for %s.%s (size: %d)\n", bitmap
[0], class->name_space, class->name, class->class_size);*/
statics_gc_descr = mono_gc_make_descr_from_bitmap
(bitmap, max_set? max_set + 1: 0);
- vt->data = mono_gc_alloc_fixed (class_size,
statics_gc_descr);
+ vt->data = mono_gc_alloc_fixed (class->class_size,
statics_gc_descr);
mono_domain_add_class_static_data (domain, class,
vt->data, NULL);
if (bitmap != default_bitmap)
g_free (bitmap);
} else {
- vt->data = mono_mempool_alloc0 (domain->mp, class_size);
+ vt->data = mono_mempool_alloc0 (domain->mp,
class->class_size);
}
- mono_stats.class_static_data_size += class_size;
+ mono_stats.class_static_data_size += class->class_size;
}
cindex = -1;
Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c 2006-09-22 12:25:25 UTC (rev
65813)
+++ trunk/mono/mono/metadata/reflection.c 2006-09-22 13:46:09 UTC (rev
65814)
@@ -9508,7 +9508,7 @@
if (!klass->parent->size_inited)
mono_class_init (klass->parent);
klass->instance_size = klass->parent->instance_size;
- klass->sizes.class_size = 0;
+ klass->class_size = 0;
klass->min_align = klass->parent->min_align;
/* if the type has no fields we won't call the field_setup
* routine which sets up klass->has_references.
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches