Free domain specific sequence point information.
authorJonathan Chambers <jonathan@unity3d.com>
Thu, 1 Aug 2013 20:40:00 +0000 (16:40 -0400)
committerJonathan Chambers <jonathan@unity3d.com>
Wed, 14 Aug 2013 17:10:23 +0000 (13:10 -0400)
Conflicts:
mono/mini/mini.c

mono/mini/mini.c

index 195a8b430ae9d91bc3dc07c181cbbf57030b881c..f07e613f8645c4a6b400087d75e22a3b60d4a86c 100644 (file)
@@ -6792,6 +6792,7 @@ register_jit_stats (void)
 }
 
 static void runtime_invoke_info_free (gpointer value);
+static void seq_point_info_free (gpointer value);
  
 static void
 mini_create_jit_domain_info (MonoDomain *domain)
@@ -6804,7 +6805,7 @@ mini_create_jit_domain_info (MonoDomain *domain)
        info->delegate_trampoline_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->llvm_vcall_trampoline_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->runtime_invoke_hash = g_hash_table_new_full (mono_aligned_addr_hash, NULL, NULL, runtime_invoke_info_free);
-       info->seq_points = g_hash_table_new_full (mono_aligned_addr_hash, NULL, NULL, g_free);
+       info->seq_points = g_hash_table_new_full (mono_aligned_addr_hash, NULL, NULL, seq_point_info_free);
        info->arch_seq_points = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->jump_target_hash = g_hash_table_new (NULL, NULL);
 
@@ -6838,6 +6839,19 @@ runtime_invoke_info_free (gpointer value)
        g_free (info);
 }
 
+static void seq_point_info_free (gpointer value)
+{
+       int i = 0;
+       MonoSeqPointInfo* info = (MonoSeqPointInfo*)value;
+       
+       for (i = 0; i < info->len; ++i) {
+               SeqPoint *sp = &info->seq_points [i];
+               g_free (sp->next);
+       }
+
+       g_free (info);
+}
+
 static void
 mini_free_jit_domain_info (MonoDomain *domain)
 {