diff options
author | Gleb Balykov <g.balykov@samsung.com> | 2017-06-23 14:57:25 +0300 |
---|---|---|
committer | Gleb Balykov <g.balykov@samsung.com> | 2017-07-10 16:37:05 +0300 |
commit | cf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2 (patch) | |
tree | 446fedc57adce0d4610d8e6cfc98c1a17243e3f9 /src/vm/ceeload.cpp | |
parent | 7a107e9622ff5803987add587414610014eeca4e (diff) | |
download | coreclr-cf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2.tar.gz coreclr-cf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2.tar.bz2 coreclr-cf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2.zip |
Remove relocations for MethodTable::m_pParentMethodTable for Linux ARM
Diffstat (limited to 'src/vm/ceeload.cpp')
-rw-r--r-- | src/vm/ceeload.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/vm/ceeload.cpp b/src/vm/ceeload.cpp index ea93e5ccf4..4d7c754333 100644 --- a/src/vm/ceeload.cpp +++ b/src/vm/ceeload.cpp @@ -10263,6 +10263,32 @@ void Module::RestoreMethodTablePointer(RelativeFixupPointer<PTR_MethodTable> * p } } +/*static*/ +void Module::RestoreMethodTablePointer(PlainPointer<PTR_MethodTable> * ppMT, + Module *pContainingModule, + ClassLoadLevel level) +{ + CONTRACTL + { + THROWS; + GC_TRIGGERS; + MODE_ANY; + } + CONTRACTL_END; + + if (ppMT->IsNull()) + return; + + if (ppMT->IsTagged()) + { + RestoreMethodTablePointerRaw(ppMT->GetValuePtr(), pContainingModule, level); + } + else + { + ClassLoader::EnsureLoaded(ppMT->GetValue(), level); + } +} + #endif // !DACCESS_COMPILE BOOL Module::IsZappedCode(PCODE code) |