summaryrefslogtreecommitdiff
path: root/src/zap
diff options
context:
space:
mode:
authorMichal Strehovský <MichalStrehovsky@users.noreply.github.com>2018-12-18 09:56:23 +0100
committerGitHub <noreply@github.com>2018-12-18 09:56:23 +0100
commit352a5cb1b358ba7e3a5addbf7bd4a5fd73499683 (patch)
tree579f97417009d4e11362eb237416c1d4986405f6 /src/zap
parente33e50eb845a75312d98dbc9a6bf9b9b0e6c4ee5 (diff)
downloadcoreclr-352a5cb1b358ba7e3a5addbf7bd4a5fd73499683.tar.gz
coreclr-352a5cb1b358ba7e3a5addbf7bd4a5fd73499683.tar.bz2
coreclr-352a5cb1b358ba7e3a5addbf7bd4a5fd73499683.zip
Fix stack walking and reporting of default interface methods (#21525)
Default interface methods in their unresolved state don't have a generic context. The generic context is only added once the method is resolved to its implementation.
Diffstat (limited to 'src/zap')
-rw-r--r--src/zap/zapimport.cpp6
-rw-r--r--src/zap/zapimport.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/zap/zapimport.cpp b/src/zap/zapimport.cpp
index 7b847e9430..5e1a42c119 100644
--- a/src/zap/zapimport.cpp
+++ b/src/zap/zapimport.cpp
@@ -658,7 +658,7 @@ void ZapImportSectionSignatures::PlaceStubDispatchCell(ZapImport * pImport)
m_pImage->GetImportTable()->PlaceImportBlob(pCell);
- m_pGCRefMapTable->Append(pCell->GetMethod());
+ m_pGCRefMapTable->Append(pCell->GetMethod(), true);
}
//
@@ -871,9 +871,9 @@ ZapImport * ZapImportTable::GetVirtualImportThunk(CORINFO_METHOD_HANDLE handle,
// GCRefMapTable is used to encode for GC references locations for lazily resolved calls
//
-void ZapGCRefMapTable::Append(CORINFO_METHOD_HANDLE handle)
+void ZapGCRefMapTable::Append(CORINFO_METHOD_HANDLE handle, bool isDispatchCell)
{
- m_pImage->GetCompileInfo()->GetCallRefMap(handle, &m_GCRefMapBuilder);
+ m_pImage->GetCompileInfo()->GetCallRefMap(handle, &m_GCRefMapBuilder, isDispatchCell);
m_nCount++;
}
diff --git a/src/zap/zapimport.h b/src/zap/zapimport.h
index 058cb0b145..d9359e9df8 100644
--- a/src/zap/zapimport.h
+++ b/src/zap/zapimport.h
@@ -533,7 +533,7 @@ public:
{
}
- void Append(CORINFO_METHOD_HANDLE handle);
+ void Append(CORINFO_METHOD_HANDLE handle, bool isDispatchCell = false);
virtual DWORD GetSize();