From cf5b8efd8120f7e550f7b2fdb133f88db372d9ce Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Wed, 19 Apr 2017 09:29:57 +0900 Subject: [PATCH] [x86/Linux] Do NOT run GC on Transition --- src/vm/threads.h | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/vm/threads.h b/src/vm/threads.h index 6b8825c6ac10..34fca24c4f16 100644 --- a/src/vm/threads.h +++ b/src/vm/threads.h @@ -6735,30 +6735,29 @@ class FCallGCCanTrigger Thread::TriggersGC(GetThread()); \ } while(0) +#else // ENABLE_CONTRACTS_IMPL + +#define BEGINFORBIDGC() +#define ENDFORBIDGC() +#define TRIGGERSGC_NOSTOMP() ANNOTATION_GC_TRIGGERS +#define TRIGGERSGC() ANNOTATION_GC_TRIGGERS + +#endif // ENABLE_CONTRACTS_IMPL inline BOOL GC_ON_TRANSITIONS(BOOL val) { WRAPPER_NO_CONTRACT; +#ifdef _DEBUG Thread* thread = GetThread(); if (thread == 0) return(FALSE); BOOL ret = thread->m_GCOnTransitionsOK; thread->m_GCOnTransitionsOK = val; return(ret); +#else // _DEBUG + return FALSE; +#endif // !_DEBUG } -#else // _DEBUG_IMPL - -#define BEGINFORBIDGC() -#define ENDFORBIDGC() -#define TRIGGERSGC_NOSTOMP() ANNOTATION_GC_TRIGGERS -#define TRIGGERSGC() ANNOTATION_GC_TRIGGERS - -inline BOOL GC_ON_TRANSITIONS(BOOL val) { - return FALSE; -} - -#endif // _DEBUG_IMPL - #ifdef _DEBUG inline void ENABLESTRESSHEAP() { WRAPPER_NO_CONTRACT;