}
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)
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);
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)
{