Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / mini / seq-points.c
index 623783262034c2a9d18540b85dedffb41ef139a4..f9c0b1f00ececf4f302467b0bd3ea89c981a44b7 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * seq-points.c: Sequence Points functions
+/**
+ * \file
+ * Sequence Points functions
  *
  * Authors:
  *   Marcos Henrich (marcos.henrich@xamarin.com)
@@ -229,16 +230,18 @@ mono_save_seq_point_info (MonoCompile *cfg)
                g_free (next);
 
        cfg->seq_point_info = mono_seq_point_info_new (array->len, TRUE, array->data, has_debug_data, &seq_info_size);
-       mono_jit_stats.allocated_seq_points_size += seq_info_size;
+       InterlockedAdd (&mono_jit_stats.allocated_seq_points_size, seq_info_size);
 
        g_byte_array_free (array, TRUE);
 
        // FIXME: dynamic methods
        if (!cfg->compile_aot) {
                mono_domain_lock (domain);
-               // FIXME: How can the lookup succeed ?
+               // FIXME: The lookup can fail if the method is JITted recursively though a type cctor
                if (!g_hash_table_lookup (domain_jit_info (domain)->seq_points, cfg->method_to_register))
                        g_hash_table_insert (domain_jit_info (domain)->seq_points, cfg->method_to_register, cfg->seq_point_info);
+               else
+                       mono_seq_point_info_free (cfg->seq_point_info);
                mono_domain_unlock (domain);
        }