diff options
author | Michal Strehovský <MichalStrehovsky@users.noreply.github.com> | 2018-12-18 09:56:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-18 09:56:23 +0100 |
commit | 352a5cb1b358ba7e3a5addbf7bd4a5fd73499683 (patch) | |
tree | 579f97417009d4e11362eb237416c1d4986405f6 /src/zap | |
parent | e33e50eb845a75312d98dbc9a6bf9b9b0e6c4ee5 (diff) | |
download | coreclr-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.cpp | 6 | ||||
-rw-r--r-- | src/zap/zapimport.h | 2 |
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(); |