Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wrighton <davidwr@microsoft.com>2017-04-07 05:11:13 +0300
committerDavid Wrighton <davidwr@microsoft.com>2017-04-07 05:11:13 +0300
commite98f582698d1bd10eb481d938c101a8750336251 (patch)
treeae651738086a1d2c3f9326dff1a5d14828b5fe6c /src/Native/Runtime/TypeManager.cpp
parent1dfefaca9a537d52339f6c674453dabd64d45221 (diff)
Fix a number of issues in compiling with ProjectN abi
- When referencing a method outside of the current module, the ReflectionInvokeMapNode should reference via a method name and signature in the native layout, not a metadata token - When referencing a field outside of the current module, the ReflectionFieldMapNode should reference via method name not token - When emitting a reference to a indirection cell in the ExternalReferencesTableNode use the calculate delta instead of throwing away the calculation - When producing GCStatic descs for canonical types for the purpose of the template type loader, they should not be grouped into a single GC Static Desc region, but instead should be held in separate standalone regions - Update the PrecomputedMetadataManager to take advantage of the new ReflectionInvokeMapNode functionality - Disable new functionality for field mapping, as that requires cross module static import which isn't yet completely implemented - Disable the use of the dynamic invoke tables. The dependency analysis interactions are still not quite right in this scenario - When producing Thread Static GC descs, use a section relative reloc to the TypeThreadStaticsSymbol, not the start of the tls section - Remove all plumbing around the start of tls section and the ReadyToRun header - The need for the data was incorrect, and the data is not useful [tfs-changeset: 1653533]
Diffstat (limited to 'src/Native/Runtime/TypeManager.cpp')
-rw-r--r--src/Native/Runtime/TypeManager.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/Native/Runtime/TypeManager.cpp b/src/Native/Runtime/TypeManager.cpp
index 5ad6efb9e..b09de7fba 100644
--- a/src/Native/Runtime/TypeManager.cpp
+++ b/src/Native/Runtime/TypeManager.cpp
@@ -50,8 +50,6 @@ TypeManager::TypeManager(HANDLE osModule, ReadyToRunHeader * pHeader)
m_pThreadStaticsDataSection = (UInt8*)GetModuleSection(ReadyToRunSectionType::ThreadStaticRegion, &length);
m_pThreadStaticsGCInfo = (StaticGcDesc*)GetModuleSection(ReadyToRunSectionType::ThreadStaticGCDescRegion, &length);
m_pTlsIndex = (UInt32*)GetModuleSection(ReadyToRunSectionType::ThreadStaticIndex, &length);
- UInt32 *pManagedTlsStartOffset = (UInt32*)GetModuleSection(ReadyToRunSectionType::ThreadStaticStartOffset, &length);
- m_managedTlsStartOffset = pManagedTlsStartOffset ? *pManagedTlsStartOffset : 0;
}
void * TypeManager::GetModuleSection(ReadyToRunSectionType sectionId, int * length)
@@ -157,7 +155,7 @@ void TypeManager::EnumStaticGCRefs(void * pfnCallback, void * pvCallbackData)
// value in the module header.
// 2) The offset into the TLS block at which managed data begins.
EnumThreadStaticGCRefsBlock(pfnCallback, pvCallbackData, m_pThreadStaticsGCInfo,
- dac_cast<UInt8*>(pThread->GetThreadLocalStorage(*m_pTlsIndex, m_managedTlsStartOffset)));
+ dac_cast<UInt8*>(pThread->GetThreadLocalStorage(*m_pTlsIndex, 0)));
}
END_FOREACH_THREAD
}