Author: massi
Date: 2008-01-21 05:19:33 -0500 (Mon, 21 Jan 2008)
New Revision: 93375
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/class.c
trunk/mono/mono/metadata/class.h
trunk/mono/mono/metadata/reflection.c
Log:
*class.c:
mono_generic_class_get_class: hook profiler events.
mono_field_get_offset: added to support heap-shot in the new profiler.
*class.h: exported mono_field_get_offset.
* reflection.c:
mono_reflection_setup_internal_class: hook profiler events.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2008-01-21 09:49:27 UTC (rev 93374)
+++ trunk/mono/mono/metadata/ChangeLog 2008-01-21 10:19:33 UTC (rev 93375)
@@ -1,3 +1,11 @@
+2007-11-07 Massimiliano Mantione <[EMAIL PROTECTED]>
+ *class.c:
+ mono_generic_class_get_class: hook profiler events.
+ mono_field_get_offset: added to support heap-shot in the new profiler.
+ *class.h: exported mono_field_get_offset.
+ * reflection.c:
+ mono_reflection_setup_internal_class: hook profiler events.
+
2008-01-20 Zoltan Varga <[EMAIL PROTECTED]>
* marshal.c (mono_marshal_emit_native_wrapper): Add a
'check_exceptions'
Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c 2008-01-21 09:49:27 UTC (rev 93374)
+++ trunk/mono/mono/metadata/class.c 2008-01-21 10:19:33 UTC (rev 93375)
@@ -3641,6 +3641,9 @@
klass->name = gklass->name;
klass->name_space = gklass->name_space;
+
+ mono_profiler_class_event (klass, MONO_PROFILE_START_LOAD);
+
klass->image = gklass->image;
klass->flags = gklass->flags;
klass->type_token = gklass->type_token;
@@ -3711,6 +3714,8 @@
if (MONO_CLASS_IS_INTERFACE (klass))
setup_interface_offsets (klass, 0);
+ mono_profiler_class_loaded (klass, MONO_PROFILE_OK);
+
mono_loader_unlock ();
return klass;
@@ -5848,6 +5853,18 @@
}
/**
+ * mono_field_get_offset;
+ * @field: the MonoClassField to act on
+ *
+ * Returns: the field offset.
+ */
+guint32
+mono_field_get_offset (MonoClassField *field)
+{
+ return field->offset;
+}
+
+/**
* mono_field_get_data;
* @field: the MonoClassField to act on
*
Modified: trunk/mono/mono/metadata/class.h
===================================================================
--- trunk/mono/mono/metadata/class.h 2008-01-21 09:49:27 UTC (rev 93374)
+++ trunk/mono/mono/metadata/class.h 2008-01-21 10:19:33 UTC (rev 93375)
@@ -211,6 +211,9 @@
guint32
mono_field_get_flags (MonoClassField *field);
+guint32
+mono_field_get_offset (MonoClassField *field);
+
const char *
mono_field_get_data (MonoClassField *field);
Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c 2008-01-21 09:49:27 UTC (rev
93374)
+++ trunk/mono/mono/metadata/reflection.c 2008-01-21 10:19:33 UTC (rev
93375)
@@ -8309,6 +8309,8 @@
klass->name_space = mono_string_to_utf8_mp (klass->image->mempool,
tb->nspace);
klass->type_token = MONO_TOKEN_TYPE_DEF | tb->table_idx;
klass->flags = tb->attrs;
+
+ mono_profiler_class_event (klass, MONO_PROFILE_START_LOAD);
klass->element_class = klass;
@@ -8356,6 +8358,8 @@
/*g_print ("setup %s as %s (%p)\n", klass->name,
((MonoObject*)tb)->vtable->klass->name, tb);*/
+ mono_profiler_class_loaded (klass, MONO_PROFILE_OK);
+
mono_loader_unlock ();
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches