summaryrefslogtreecommitdiff
path: root/src/vm/gccover.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/gccover.cpp')
-rw-r--r--src/vm/gccover.cpp10
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)
{