Merge branch 'master' into config-checks-ipv6
[mono.git] / mono / mini / mini-amd64-gsharedvt.c
index 591ebafb228ea3bb025e6e4290e77c5f3743bf80..a4143e8a34494d926f21f4276b166100aca50eb3 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * mini-amd64-gsharedvt.c: libcorkscrew-based native unwinder
+/**
+ * \file
+ * libcorkscrew-based native unwinder
  *
  * Authors:
  *   Zoltan Varga <vargaz@gmail.com>
@@ -17,7 +18,6 @@
 #include <mono/metadata/appdomain.h>
 #include <mono/metadata/marshal.h>
 #include <mono/metadata/tabledefs.h>
-#include <mono/metadata/mono-debug-debugger.h>
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/gc-internals.h>
 #include <mono/arch/amd64/amd64-codegen.h>
@@ -442,22 +442,17 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
                        } else {
                                MonoType *ret = sig->ret;
 
-                               // Unwrap enums
-                               if (ret->type == MONO_TYPE_VALUETYPE)
-                                       ret = mini_type_get_underlying_type (ret);
-
+                               ret = mini_type_get_underlying_type (ret);
                                switch (ret->type) {
                                case MONO_TYPE_I1:
                                        info->ret_marshal = GSHAREDVT_RET_I1;
                                        break;
-                               case MONO_TYPE_BOOLEAN:
                                case MONO_TYPE_U1:
                                        info->ret_marshal = GSHAREDVT_RET_U1;
                                        break;
                                case MONO_TYPE_I2:
                                        info->ret_marshal = GSHAREDVT_RET_I2;
                                        break;
-                               case MONO_TYPE_CHAR:
                                case MONO_TYPE_U2:
                                        info->ret_marshal = GSHAREDVT_RET_U2;
                                        break;
@@ -471,11 +466,7 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
                                case MONO_TYPE_U:
                                case MONO_TYPE_PTR:
                                case MONO_TYPE_FNPTR:
-                               case MONO_TYPE_CLASS:
                                case MONO_TYPE_OBJECT:
-                               case MONO_TYPE_SZARRAY:
-                               case MONO_TYPE_ARRAY:
-                               case MONO_TYPE_STRING:
                                case MONO_TYPE_U8:
                                case MONO_TYPE_I8:
                                        info->ret_marshal = GSHAREDVT_RET_I8;
@@ -513,6 +504,9 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
 
        info->stack_usage = ALIGN_TO (info->stack_usage, MONO_ARCH_FRAME_ALIGNMENT);
 
+       g_free (callee_cinfo);
+       g_free (caller_cinfo);
+
        DEBUG_AMD64_GSHAREDVT_PRINT ("allocated an info at %p stack usage %d\n", info, info->stack_usage);
        return info;
 }