Merge pull request #1952 from esdrubal/proc_name
[mono.git] / mono / metadata / loader.c
index b2e92c1a4c8202f2a44462762b6cd21a32cf42c0..2c591c9e4f910177930f9c84dd38ea95e6dc659d 100644 (file)
@@ -1535,7 +1535,7 @@ mono_lookup_pinvoke_call (MonoMethod *method, const char **exc_class, const char
                        continue;
                case 3:
                        if (!is_absolute && mono_dl_get_system_dir ()) {
-                               dir_name = mono_dl_get_system_dir ();
+                               dir_name = (char*)mono_dl_get_system_dir ();
                                file_name = g_path_get_basename (new_scope);
                                base_name = NULL;
                        } else
@@ -2376,10 +2376,11 @@ stack_walk_adapter (MonoStackFrameInfo *frame, MonoContext *ctx, gpointer data)
        switch (frame->type) {
        case FRAME_TYPE_DEBUGGER_INVOKE:
        case FRAME_TYPE_MANAGED_TO_NATIVE:
+       case FRAME_TYPE_TRAMPOLINE:
                return FALSE;
        case FRAME_TYPE_MANAGED:
                g_assert (frame->ji);
-               return d->func (mono_jit_info_get_method (frame->ji), frame->native_offset, frame->il_offset, frame->managed, d->user_data);
+               return d->func (frame->actual_method, frame->native_offset, frame->il_offset, frame->managed, d->user_data);
                break;
        default:
                g_assert_not_reached ();
@@ -2415,14 +2416,16 @@ async_stack_walk_adapter (MonoStackFrameInfo *frame, MonoContext *ctx, gpointer
        switch (frame->type) {
        case FRAME_TYPE_DEBUGGER_INVOKE:
        case FRAME_TYPE_MANAGED_TO_NATIVE:
+       case FRAME_TYPE_TRAMPOLINE:
                return FALSE;
        case FRAME_TYPE_MANAGED:
                if (!frame->ji)
                        return FALSE;
-               if (frame->ji->async)
+               if (frame->ji->async) {
                        return d->func (NULL, frame->domain, frame->ji->code_start, frame->native_offset, d->user_data);
-               else
+               } else {
                        return d->func (frame->actual_method, frame->domain, frame->ji->code_start, frame->native_offset, d->user_data);
+               }
                break;
        default:
                g_assert_not_reached ();
@@ -2474,9 +2477,9 @@ static gboolean loader_lock_track_ownership = FALSE;
 void
 mono_loader_lock (void)
 {
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_locks_acquire (&loader_mutex, LoaderLock);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
                
        if (G_UNLIKELY (loader_lock_track_ownership)) {
                mono_native_tls_set_value (loader_lock_nest_id, GUINT_TO_POINTER (GPOINTER_TO_UINT (mono_native_tls_get_value (loader_lock_nest_id)) + 1));