diff options
author | Gleb Balykov <g.balykov@samsung.com> | 2017-06-22 20:24:54 +0300 |
---|---|---|
committer | Gleb Balykov <g.balykov@samsung.com> | 2017-07-10 16:37:05 +0300 |
commit | e085f07a5fa0aff778ff7562a33a88513b79b3b7 (patch) | |
tree | ab1caf69d1d269e4b2ddec8eaaa4b9592353bab2 /src/vm/methodtable.h | |
parent | e8adb62978b887eda3617dff7eccec1fc7719d07 (diff) | |
download | coreclr-e085f07a5fa0aff778ff7562a33a88513b79b3b7.tar.gz coreclr-e085f07a5fa0aff778ff7562a33a88513b79b3b7.tar.bz2 coreclr-e085f07a5fa0aff778ff7562a33a88513b79b3b7.zip |
Remove relocations for InterfaceInfo_t::m_pMethodTable for Linux ARM
Diffstat (limited to 'src/vm/methodtable.h')
-rw-r--r-- | src/vm/methodtable.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/vm/methodtable.h b/src/vm/methodtable.h index fcc9779157..92a61f4118 100644 --- a/src/vm/methodtable.h +++ b/src/vm/methodtable.h @@ -110,25 +110,40 @@ struct InterfaceInfo_t friend class NativeImageDumper; #endif - FixupPointer<PTR_MethodTable> m_pMethodTable; // Method table of the interface + // Method table of the interface +#if defined(PLATFORM_UNIX) && defined(_TARGET_ARM_) + RelativeFixupPointer<PTR_MethodTable> m_pMethodTable; +#else + FixupPointer<PTR_MethodTable> m_pMethodTable; +#endif public: FORCEINLINE PTR_MethodTable GetMethodTable() { LIMITED_METHOD_CONTRACT; - return m_pMethodTable.GetValue(); + return ReadPointerMaybeNull(this, &InterfaceInfo_t::m_pMethodTable); } #ifndef DACCESS_COMPILE void SetMethodTable(MethodTable * pMT) { LIMITED_METHOD_CONTRACT; - m_pMethodTable.SetValue(pMT); + m_pMethodTable.SetValueMaybeNull(pMT); } // Get approximate method table. This is used by the type loader before the type is fully loaded. PTR_MethodTable GetApproxMethodTable(Module * pContainingModule); -#endif +#endif // !DACCESS_COMPILE + +#ifndef DACCESS_COMPILE + InterfaceInfo_t(InterfaceInfo_t &right) + { + m_pMethodTable.SetValueMaybeNull(right.m_pMethodTable.GetValueMaybeNull()); + } +#else // !DACCESS_COMPILE +private: + InterfaceInfo_t(InterfaceInfo_t &right); +#endif // !DACCESS_COMPILE }; // struct InterfaceInfo_t typedef DPTR(InterfaceInfo_t) PTR_InterfaceInfo; |