[runtime/profiler] Check that coverage hash tables have been initialized before freei...
authorAlexander Kyte <alexander.kyte@xamarin.com>
Thu, 21 May 2015 20:58:07 +0000 (16:58 -0400)
committerAlexander Kyte <alexander.kyte@xamarin.com>
Thu, 21 May 2015 20:58:07 +0000 (16:58 -0400)
mono/profiler/proflog.c

index cf4d3ed68a14968df17b6d990a4c905c9395b2fb..1d3d6651ed7fd4706745b682d2914d0edb1798cb 100644 (file)
@@ -3209,13 +3209,16 @@ log_shutdown (MonoProfiler *prof)
                fclose (prof->file);
 
        destroy_hashtable (prof->method_table, &prof->method_table_mutex);
-       destroy_hashtable (coverage_methods, &coverage_methods_mutex);
-       destroy_hashtable (coverage_assemblies, &coverage_assemblies_mutex);
-       destroy_hashtable (coverage_classes, &coverage_classes_mutex);
-       destroy_hashtable (filtered_classes, &filtered_classes_mutex);
-       destroy_hashtable (entered_methods, &entered_methods_mutex);
-       destroy_hashtable (image_to_methods, &image_to_methods_mutex);
-       destroy_hashtable (suppressed_assemblies, &suppressed_assemblies_mutex);
+
+       if (coverage_initialized) {
+               destroy_hashtable (coverage_methods, &coverage_methods_mutex);
+               destroy_hashtable (coverage_assemblies, &coverage_assemblies_mutex);
+               destroy_hashtable (coverage_classes, &coverage_classes_mutex);
+               destroy_hashtable (filtered_classes, &filtered_classes_mutex);
+               destroy_hashtable (entered_methods, &entered_methods_mutex);
+               destroy_hashtable (image_to_methods, &image_to_methods_mutex);
+               destroy_hashtable (suppressed_assemblies, &suppressed_assemblies_mutex);
+       }
 
        free (prof);
 }