From 6305cd33271dc4c00fc50a33a096995fb137c288 Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Fri, 26 Nov 2021 03:08:36 +0200 Subject: [PATCH 1/2] Avoid switching GC mode in COM's HasValidTarget --- src/coreclr/vm/interoplibinterface_comwrappers.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/coreclr/vm/interoplibinterface_comwrappers.cpp b/src/coreclr/vm/interoplibinterface_comwrappers.cpp index 8c3b9882789b7..103fd1bd69397 100644 --- a/src/coreclr/vm/interoplibinterface_comwrappers.cpp +++ b/src/coreclr/vm/interoplibinterface_comwrappers.cpp @@ -1169,11 +1169,7 @@ namespace InteropLibImports bool isValid = false; ::OBJECTHANDLE objectHandle = static_cast<::OBJECTHANDLE>(handle); - { - // Switch to cooperative mode so the handle can be safely inspected. - GCX_COOP_THREAD_EXISTS(GET_THREAD()); - isValid = ObjectFromHandle(objectHandle) != NULL; - } + isValid = ObjectHandleIsNull(objectHandle) == TRUE; return isValid; } From 56a67359a12aec081a7390cb45e0fb56302f89d1 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Fri, 26 Nov 2021 06:37:55 -0800 Subject: [PATCH 2/2] Update src/coreclr/vm/interoplibinterface_comwrappers.cpp --- src/coreclr/vm/interoplibinterface_comwrappers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/vm/interoplibinterface_comwrappers.cpp b/src/coreclr/vm/interoplibinterface_comwrappers.cpp index 103fd1bd69397..fd9bdd1665948 100644 --- a/src/coreclr/vm/interoplibinterface_comwrappers.cpp +++ b/src/coreclr/vm/interoplibinterface_comwrappers.cpp @@ -1169,7 +1169,7 @@ namespace InteropLibImports bool isValid = false; ::OBJECTHANDLE objectHandle = static_cast<::OBJECTHANDLE>(handle); - isValid = ObjectHandleIsNull(objectHandle) == TRUE; + isValid = ObjectHandleIsNull(objectHandle) != FALSE; return isValid; }