diff options
Diffstat (limited to 'src/vm/gccover.cpp')
-rw-r--r-- | src/vm/gccover.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/vm/gccover.cpp b/src/vm/gccover.cpp index 3e195796b4..895c176460 100644 --- a/src/vm/gccover.cpp +++ b/src/vm/gccover.cpp @@ -160,7 +160,7 @@ void SetupGcCoverage(MethodDesc* pMD, BYTE* methodStartPtr) { { BaseDomain* pDomain = pMD->GetDomain(); // Enter the global lock which protects the list of all functions being JITd - ListLockHolder pJitLock(pDomain->GetJitLock()); + JitListLock::LockHolder pJitLock(pDomain->GetJitLock()); // It is possible that another thread stepped in before we entered the global lock for the first time. @@ -175,14 +175,14 @@ void SetupGcCoverage(MethodDesc* pMD, BYTE* methodStartPtr) { #ifdef _DEBUG description = pMD->m_pszDebugMethodName; #endif - ListLockEntryHolder pEntry(ListLockEntry::Find(pJitLock, pMD, description)); + ReleaseHolder<JitListLockEntry> pEntry(JitListLockEntry::Find(pJitLock, pMD->GetInitialCodeVersion(), description)); // We have an entry now, we can release the global lock pJitLock.Release(); // Take the entry lock { - ListLockEntryLockHolder pEntryLock(pEntry, FALSE); + JitListLockEntry::LockHolder pEntryLock(pEntry, FALSE); if (pEntryLock.DeadlockAwareAcquire()) { @@ -1035,6 +1035,10 @@ static SLOT getTargetOfCall(SLOT instrPtr, PCONTEXT regs, SLOT*nextInstr) { unsigned int regnum = (instrPtr[0] & 0x78) >> 3; return (BYTE *)getRegVal(regnum, regs); } + else + { + return 0; // Not a call. + } #elif defined(_TARGET_ARM64_) if (((*reinterpret_cast<DWORD*>(instrPtr)) & 0xFC000000) == 0x94000000) { |