[Local GC] Fix some interface violations (#10817)
authorSean Gillespie <sean@swgillespie.me>
Sat, 8 Apr 2017 06:59:00 +0000 (23:59 -0700)
committerJan Kotas <jkotas@microsoft.com>
Sat, 8 Apr 2017 06:59:00 +0000 (23:59 -0700)
src/gc/env/gcenv.base.h
src/gc/gcee.cpp
src/gc/gcpriv.h

index 2ce07ef157aa0a65a1d700ddf4e23443dc231a6e..a4befca09edeab84b9f203572b90d535d173c9a5 100644 (file)
@@ -65,6 +65,7 @@ inline HRESULT HRESULT_FROM_WIN32(unsigned long x)
 #define E_UNEXPECTED            0x8000FFFF
 #define E_NOTIMPL               0x80004001
 #define E_INVALIDARG            0x80070057
+#define COR_E_EXECUTIONENGINE   0x80131506
 
 #define NOERROR                 0x0
 #define ERROR_TIMEOUT           1460
index a736a596e7981cb0e19e21637ac94825c15465a5..889f9409731bd25c3dbb7f0a6aba564d0b282aba 100644 (file)
@@ -408,12 +408,8 @@ BlockAgain:
         dwWaitResult = WaitForGCEvent->Wait(DETECT_DEADLOCK_TIMEOUT, FALSE );
 
         if (dwWaitResult == WAIT_TIMEOUT) {
-            //  Even in retail, stop in the debugger if available.  Ideally, the
-            //  following would use DebugBreak, but debspew.h makes this a null
-            //  macro in retail.  Note that in debug, we don't use the debspew.h
-            //  macros because these take a critical section that may have been
-            //  taken by a suspended thread.
-            FreeBuildDebugBreak();
+            //  Even in retail, stop in the debugger if available.
+            GCToOSInterface::DebugBreak();
             goto BlockAgain;
         }
 
index 7bd688327195552b4ff23c4d35e3fb3646bcf94e..108045cd37c6a9a6bd53ba6da63e151583c467ed 100644 (file)
@@ -28,7 +28,7 @@ inline void FATAL_GC_ERROR()
     GCToOSInterface::DebugBreak();
 #endif // DACCESS_COMPILE
     _ASSERTE(!"Fatal Error in GC.");
-    EEPOLICY_HANDLE_FATAL_ERROR(COR_E_EXECUTIONENGINE);
+    GCToEEInterface::HandleFatalError(COR_E_EXECUTIONENGINE);
 }
 
 #ifdef _MSC_VER