From d2d9eaddbd7e9e12851f6c603a1c2069b17a6652 Mon Sep 17 00:00:00 2001 From: Andrew Au Date: Wed, 12 Apr 2023 14:27:38 -0700 Subject: [PATCH] Avoid clearing mark array when it was not committed --- src/coreclr/gc/gc.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index b67815536cf829..474e041974cf9b 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -9633,7 +9633,10 @@ void gc_heap::remove_ro_segment (heap_segment* seg) #ifdef BACKGROUND_GC if (gc_can_use_concurrent) { - seg_clear_mark_array_bits_soh (seg); + if ((seg->flags & heap_segment_flags_ma_committed) || (seg->flags & heap_segment_flags_ma_pcommitted)) + { + seg_clear_mark_array_bits_soh (seg); + } } #endif //BACKGROUND_GC