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

Reply via email to