[profiler] Avoid instrumenting inlined methods
[mono.git] / mono / mini / mini-profiler.c
index 1e79ecc4099b661d95d670ce0f3e9a1187adf50d..33d39e26df6dfd138048a92d165837685dc546ea 100644 (file)
@@ -20,6 +20,13 @@ mini_profiler_emit_instrumentation_call (MonoCompile *cfg, void *func, gboolean
 {
        gboolean instrument, capture;
 
+       /*
+        * Do not instrument an inlined method - it becomes
+        * part of the current method.
+        */
+       if (cfg->current_method != cfg->method)
+               return;
+
        if (entry) {
                instrument = cfg->prof_flags & MONO_PROFILER_CALL_INSTRUMENTATION_PROLOGUE;
                capture = cfg->prof_flags & MONO_PROFILER_CALL_INSTRUMENTATION_PROLOGUE_CONTEXT;
@@ -31,8 +38,6 @@ mini_profiler_emit_instrumentation_call (MonoCompile *cfg, void *func, gboolean
        if (!instrument)
                return;
 
-       g_assert (cfg->current_method == cfg->method);
-
        MonoInst *iargs [2];
 
        EMIT_NEW_METHODCONST (cfg, iargs [0], cfg->method);