From b9eada28eec13c06daac1a779f2d3d529134a0cb Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 9 Jan 2022 10:50:49 -0500 Subject: [PATCH] Added SEH protection inside ConservativeScan --- BeefRT/dbg/gc.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/BeefRT/dbg/gc.cpp b/BeefRT/dbg/gc.cpp index af720155..09917bd0 100644 --- a/BeefRT/dbg/gc.cpp +++ b/BeefRT/dbg/gc.cpp @@ -808,11 +808,18 @@ void BFGC::ConservativeScan(void* startAddr, int length) void* ptr = (void*)((intptr)startAddr & ~((sizeof(intptr)-1))); void* endAddr = (uint8*)startAddr + length; - while (ptr < endAddr) + __try { - void* addr = *(void**)ptr; - MarkFromGCThread((bf::System::Object*)addr); - ptr = (uint8*)ptr + sizeof(intptr); + while (ptr < endAddr) + { + void* addr = *(void**)ptr; + MarkFromGCThread((bf::System::Object*)addr); + ptr = (uint8*)ptr + sizeof(intptr); + } + } + __finally + { + } }