[runtime] New profiler API.
[mono.git] / samples / size / size.c
index 12f39bdcb8c271a80621329a9e87878b696b5b2d..86ec27dfd6da4fe6942232aa351e4003c6283b5f 100644 (file)
@@ -74,6 +74,12 @@ memory_usage (MonoObject *obj, GHashTable *visited)
 
                         break;
 
+               case MONO_TYPE_STRING:
+                       mono_field_get_value (obj, field, &value);
+                       if (value != NULL)
+                               total += mono_object_get_size ((MonoObject *) value);
+                       break;
+
                 case MONO_TYPE_SZARRAY:
                         mono_field_get_value (obj, field, &value);
 
@@ -115,7 +121,7 @@ GetMemoryUsage (MonoObject *this)
 
 static int installed = 0;
 
-void install_icall (MonoProfiler *prof, MonoMethod *method, MonoJitInfo* jinfo, int result)
+void install_icall (MonoProfiler *prof, MonoMethod *method, MonoJitInfo* jinfo)
 {
        if (installed)
                return;
@@ -125,8 +131,8 @@ void install_icall (MonoProfiler *prof, MonoMethod *method, MonoJitInfo* jinfo,
 }
 
 void
-mono_profiler_startup (const char *desc)
+mono_profiler_init (const char *desc)
 {
-       mono_profiler_install_jit_end (install_icall);
-       mono_profiler_set_events (MONO_PROFILE_JIT_COMPILATION);
+       MonoProfilerHandle handle = mono_profiler_install (NULL);
+       mono_profiler_set_jit_done_callback (handle, install_icall);
 }