X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fprofiler.c;h=cdd11fda385f3b6a2b0a87469d2f955b067f5bed;hb=ff49850dfc18f5991246a203184fa1e0b8a7c7ab;hp=a9d0e68f6dee9c9a678c548c321b55d3304898ca;hpb=2901e91c9d60c0556f993a474b0d582dc53a84f2;p=mono.git diff --git a/mono/metadata/profiler.c b/mono/metadata/profiler.c index a9d0e68f6de..cdd11fda385 100644 --- a/mono/metadata/profiler.c +++ b/mono/metadata/profiler.c @@ -19,7 +19,7 @@ #include "mono/metadata/metadata-internals.h" #include "mono/metadata/class-internals.h" #include "mono/metadata/domain-internals.h" -#include "mono/metadata/gc-internal.h" +#include "mono/metadata/gc-internals.h" #include "mono/metadata/mono-config-dirs.h" #include "mono/io-layer/io-layer.h" #include "mono/utils/mono-dl.h" @@ -109,8 +109,8 @@ struct _ProfilerDesc { static ProfilerDesc *prof_list = NULL; -#define mono_profiler_coverage_lock() mono_mutex_lock (&profiler_coverage_mutex) -#define mono_profiler_coverage_unlock() mono_mutex_unlock (&profiler_coverage_mutex) +#define mono_profiler_coverage_lock() mono_os_mutex_lock (&profiler_coverage_mutex) +#define mono_profiler_coverage_unlock() mono_os_mutex_unlock (&profiler_coverage_mutex) static mono_mutex_t profiler_coverage_mutex; /* this is directly accessible to other mono libs. @@ -134,7 +134,7 @@ mono_profiler_install (MonoProfiler *prof, MonoProfileFunc callback) { ProfilerDesc *desc = g_new0 (ProfilerDesc, 1); if (!prof_list) - mono_mutex_init_recursive (&profiler_coverage_mutex); + mono_os_mutex_init_recursive (&profiler_coverage_mutex); desc->profiler = prof; desc->shutdown_callback = callback; desc->next = prof_list; @@ -159,11 +159,11 @@ void mono_profiler_set_events (MonoProfileFlags events) { ProfilerDesc *prof; - MonoProfileFlags value = 0; + MonoProfileFlags value = (MonoProfileFlags)0; if (prof_list) prof_list->events = events; for (prof = prof_list; prof; prof = prof->next) - value |= prof->events; + value = (MonoProfileFlags)(value | prof->events); mono_profiler_events = value; } @@ -813,7 +813,7 @@ mono_profiler_shutdown (void) prof->shutdown_callback (prof->profiler); } - mono_profiler_set_events (0); + mono_profiler_set_events ((MonoProfileFlags)0); } void @@ -1018,7 +1018,7 @@ mono_profiler_coverage_alloc (MonoMethod *method, int entries) if (!coverage_hash) coverage_hash = g_hash_table_new (NULL, NULL); - res = g_malloc0 (sizeof (MonoProfileCoverageInfo) + sizeof (void*) * 2 * entries); + res = (MonoProfileCoverageInfo *)g_malloc0 (sizeof (MonoProfileCoverageInfo) + sizeof (void*) * 2 * entries); res->entries = entries; @@ -1040,7 +1040,7 @@ mono_profiler_coverage_free (MonoMethod *method) return; } - info = g_hash_table_lookup (coverage_hash, method); + info = (MonoProfileCoverageInfo *)g_hash_table_lookup (coverage_hash, method); if (info) { g_free (info); g_hash_table_remove (coverage_hash, method); @@ -1063,6 +1063,7 @@ mono_profiler_coverage_free (MonoMethod *method) void mono_profiler_coverage_get (MonoProfiler *prof, MonoMethod *method, MonoProfileCoverageFunc func) { + MonoError error; MonoProfileCoverageInfo* info = NULL; int i, offset; guint32 code_size; @@ -1073,13 +1074,14 @@ mono_profiler_coverage_get (MonoProfiler *prof, MonoMethod *method, MonoProfileC mono_profiler_coverage_lock (); if (coverage_hash) - info = g_hash_table_lookup (coverage_hash, method); + info = (MonoProfileCoverageInfo *)g_hash_table_lookup (coverage_hash, method); mono_profiler_coverage_unlock (); if (!info) return; - header = mono_method_get_header (method); + header = mono_method_get_header_checked (method, &error); + mono_error_assert_ok (&error); start = mono_method_header_get_code (header, &code_size, NULL); debug_minfo = mono_debug_lookup_method (method); @@ -1240,7 +1242,7 @@ mono_profiler_load (const char *desc) gboolean res = FALSE; if (col != NULL) { - mname = g_memdup (desc, col - desc + 1); + mname = (char *)g_memdup (desc, col - desc + 1); mname [col - desc] = 0; } else { mname = g_strdup (desc);