[aot] Save the number of locals into the aot debug info so the method header doesn...
authorZoltan Varga <vargaz@gmail.com>
Tue, 25 Jun 2019 17:26:17 +0000 (13:26 -0400)
committerLarry Ewing <lewing@microsoft.com>
Wed, 26 Jun 2019 01:03:35 +0000 (20:03 -0500)
Commit migrated from https://github.com/mono/mono/commit/dc321b06a204d091f09166c5d1bedf41c1020fd4

src/mono/mono/mini/aot-runtime.h
src/mono/mono/mini/debug-mini.c

index defbec5..a5a3e80 100644 (file)
@@ -11,7 +11,7 @@
 #include "mini.h"
 
 /* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION 164
+#define MONO_AOT_FILE_VERSION 165
 
 #define MONO_AOT_TRAMP_PAGE_SIZE 16384
 
index 80407b4..cad22ae 100644 (file)
@@ -465,6 +465,8 @@ mono_debug_serialize_debug_info (MonoCompile *cfg, guint8 **out_buf, guint32 *bu
        encode_value (jit->has_var_info, p, &p);
 
        if (jit->has_var_info) {
+               encode_value (jit->num_locals, p, &p);
+
                for (i = 0; i < jit->num_params; ++i)
                        serialize_variable (&jit->params [i], p, &p);
 
@@ -531,16 +533,11 @@ deserialize_variable (MonoDebugVarInfo *var, guint8 *p, guint8 **endbuf)
 static MonoDebugMethodJitInfo *
 deserialize_debug_info (MonoMethod *method, guint8 *code_start, guint8 *buf, guint32 buf_len)
 {
-       ERROR_DECL (error);
-       MonoMethodHeader *header;
        gint32 offset, native_offset, prev_offset, prev_native_offset;
        MonoDebugMethodJitInfo *jit;
        guint8 *p;
        int i;
 
-       header = mono_method_get_header_checked (method, error);
-       mono_error_assert_ok (error); /* FIXME don't swallow the error */
-
        jit = g_new0 (MonoDebugMethodJitInfo, 1);
        jit->code_start = code_start;
 
@@ -551,7 +548,8 @@ deserialize_debug_info (MonoMethod *method, guint8 *code_start, guint8 *buf, gui
        jit->has_var_info = decode_value (p, &p);
 
        if (jit->has_var_info) {
-               jit->num_locals = header->num_locals;
+               jit->num_locals = decode_value (p, &p);
+
                jit->num_params = mono_method_signature_internal (method)->param_count;
                jit->params = g_new0 (MonoDebugVarInfo, jit->num_params);
                jit->locals = g_new0 (MonoDebugVarInfo, jit->num_locals);
@@ -593,7 +591,6 @@ deserialize_debug_info (MonoMethod *method, guint8 *code_start, guint8 *buf, gui
                prev_native_offset = native_offset;
        }
 
-       mono_metadata_free_mh (header);
        return jit;
 }