From 2ae6c3c6eb2e02fb23e26f4e99322302d3bae7a2 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Wed, 1 Sep 2021 12:18:46 +0200 Subject: [PATCH] Fix calculation of code size for AOT assemblies mixing JIT and LLVM --- src/mono/mono/mini/aot-runtime.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index 3b753a44cb0d44..4d27652a69cb44 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -3534,7 +3534,17 @@ mono_aot_find_jit_info (MonoImage *image, gpointer addr) else code_len = amodule->llvm_code_end - code; } else { - code_len = (guint8*)methods [pos + 1] - (guint8*)methods [pos]; + guint8* code_end = (guint8*)methods [pos + 1]; + + if (code >= amodule->jit_code_start && code < amodule->jit_code_end && code_end > amodule->jit_code_end) { + code_end = amodule->jit_code_end; + } + + if (code >= amodule->llvm_code_start && code < amodule->llvm_code_end && code_end > amodule->llvm_code_end) { + code_end = amodule->llvm_code_end; + } + + code_len = code_end - code; } #endif