diff options
author | Ruben Ayrapetyan <ruben-ayrapetyan@users.noreply.github.com> | 2017-06-28 09:16:01 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2017-06-27 23:16:01 -0700 |
commit | 44f57065649af5f8bcbb7c71d827221a7bc1bf7a (patch) | |
tree | daa511e0217853b725dec53e3ec676683ecd2224 /src/vm/class.cpp | |
parent | 7cc721ec6ec56c998d66f1d57e7341cf7141a8a3 (diff) | |
download | coreclr-44f57065649af5f8bcbb7c71d827221a7bc1bf7a.tar.gz coreclr-44f57065649af5f8bcbb7c71d827221a7bc1bf7a.tar.bz2 coreclr-44f57065649af5f8bcbb7c71d827221a7bc1bf7a.zip |
Partially remove relocations from Class section of NGEN-ed images (#11962)
* Remove relocations for ParamTypeDesc::m_TemplateMT.
* Remove relocations for LayoutEEClass::m_LayoutInfo.m_pFieldMarshalers.
* Prepare RelativeFixupPointer.
* Remove relocations for FieldMarshaler::m_pFD and FieldMarshaler_*::m_*.
Diffstat (limited to 'src/vm/class.cpp')
-rw-r--r-- | src/vm/class.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/vm/class.cpp b/src/vm/class.cpp index 0259b1e4fc..6697b23a9a 100644 --- a/src/vm/class.cpp +++ b/src/vm/class.cpp @@ -2818,13 +2818,13 @@ void EEClass::Save(DataImage *image, MethodTable *pMT) if (pInfo->m_numCTMFields > 0) { - ZapStoredStructure * pNode = image->StoreStructure(pInfo->m_pFieldMarshalers, + ZapStoredStructure * pNode = image->StoreStructure(pInfo->GetFieldMarshalers(), pInfo->m_numCTMFields * MAXFIELDMARSHALERSIZE, DataImage::ITEM_FIELD_MARSHALERS); for (UINT iField = 0; iField < pInfo->m_numCTMFields; iField++) { - FieldMarshaler *pFM = (FieldMarshaler*)((BYTE *)pInfo->m_pFieldMarshalers + iField * MAXFIELDMARSHALERSIZE); + FieldMarshaler *pFM = (FieldMarshaler*)((BYTE *)pInfo->GetFieldMarshalers() + iField * MAXFIELDMARSHALERSIZE); pFM->Save(image); if (iField > 0) @@ -3029,11 +3029,11 @@ void EEClass::Fixup(DataImage *image, MethodTable *pMT) if (HasLayout()) { - image->FixupPointerField(this, offsetof(LayoutEEClass, m_LayoutInfo.m_pFieldMarshalers)); + image->FixupRelativePointerField(this, offsetof(LayoutEEClass, m_LayoutInfo.m_pFieldMarshalers)); EEClassLayoutInfo *pInfo = &((LayoutEEClass*)this)->m_LayoutInfo; - FieldMarshaler *pFM = pInfo->m_pFieldMarshalers; + FieldMarshaler *pFM = pInfo->GetFieldMarshalers(); FieldMarshaler *pFMEnd = (FieldMarshaler*) ((BYTE *)pFM + pInfo->m_numCTMFields*MAXFIELDMARSHALERSIZE); while (pFM < pFMEnd) { |