summaryrefslogtreecommitdiff
path: root/src/vm/ceeload.cpp
diff options
context:
space:
mode:
authorGleb Balykov <g.balykov@samsung.com>2017-06-23 14:57:25 +0300
committerGleb Balykov <g.balykov@samsung.com>2017-07-10 16:37:05 +0300
commitcf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2 (patch)
tree446fedc57adce0d4610d8e6cfc98c1a17243e3f9 /src/vm/ceeload.cpp
parent7a107e9622ff5803987add587414610014eeca4e (diff)
downloadcoreclr-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.cpp26
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)