summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanmosemsft <danmose@microsoft.com>2017-02-14 13:58:27 -0800
committerdanmosemsft <danmose@microsoft.com>2017-02-14 20:29:19 -0800
commitacab86b13f5d416393c6490292728f03583eee8b (patch)
treec78da85011f93d3198c2633aad0219f127bd19f6
parentbafe006c366dccc31b19dcb68aafe7696aa5e0bf (diff)
downloadcoreclr-acab86b13f5d416393c6490292728f03583eee8b.tar.gz
coreclr-acab86b13f5d416393c6490292728f03583eee8b.tar.bz2
coreclr-acab86b13f5d416393c6490292728f03583eee8b.zip
Remove never defined FEATURE_LEAK_CULTURE_INFO
-rw-r--r--src/vm/appdomain.cpp3
-rw-r--r--src/vm/comsynchronizable.cpp52
-rw-r--r--src/vm/comsynchronizable.h7
-rw-r--r--src/vm/ecalllist.h7
-rw-r--r--src/vm/mscorlib.h12
-rw-r--r--src/vm/object.h48
-rw-r--r--src/vm/threads.cpp43
-rw-r--r--src/vm/threads.h5
8 files changed, 0 insertions, 177 deletions
diff --git a/src/vm/appdomain.cpp b/src/vm/appdomain.cpp
index e13c7dbe2a..975751e440 100644
--- a/src/vm/appdomain.cpp
+++ b/src/vm/appdomain.cpp
@@ -9947,9 +9947,6 @@ void AppDomain::ClearGCRoots()
// Delete the thread local static store
pThread->DeleteThreadStaticData(this);
-#ifdef FEATURE_LEAK_CULTURE_INFO
- pThread->ResetCultureForDomain(GetId());
-#endif // FEATURE_LEAK_CULTURE_INFO
// <TODO>@TODO: A pre-allocated AppDomainUnloaded exception might be better.</TODO>
if (m_hHandleTableBucket->Contains(pThread->m_LastThrownObjectHandle))
diff --git a/src/vm/comsynchronizable.cpp b/src/vm/comsynchronizable.cpp
index 2c26a547cd..4c05f0eb68 100644
--- a/src/vm/comsynchronizable.cpp
+++ b/src/vm/comsynchronizable.cpp
@@ -1314,7 +1314,6 @@ void ThreadBaseObject::InitExisting()
}
-#ifndef FEATURE_LEAK_CULTURE_INFO
OBJECTREF ThreadBaseObject::GetManagedThreadCulture(BOOL bUICulture)
{
CONTRACTL {
@@ -1430,7 +1429,6 @@ void ThreadBaseObject::ResetManagedThreadCulture(BOOL bUICulture)
}
}
-#endif // FEATURE_LEAK_CULTURE_INFO
FCIMPL1(void, ThreadNative::Finalize, ThreadBaseObject* pThisUNSAFE)
@@ -1467,31 +1465,6 @@ FCIMPL1(void, ThreadNative::DisableComObjectEagerCleanup, ThreadBaseObject* pThi
FCIMPLEND
#endif //FEATURE_COMINTEROP
-#ifdef FEATURE_LEAK_CULTURE_INFO
-FCIMPL1(FC_BOOL_RET, ThreadNative::SetThreadUILocale, StringObject* localeNameUNSAFE)
-{
- FCALL_CONTRACT;
-
- BOOL result = TRUE;
-
- STRINGREF name = (STRINGREF) localeNameUNSAFE;
- VALIDATEOBJECTREF(name);
-
- HELPER_METHOD_FRAME_BEGIN_RET_0();
-
- LCID lcid=NewApis::LocaleNameToLCID(name->GetBuffer(),0);
- if (lcid == 0)
- {
- ThrowHR(HRESULT_FROM_WIN32(GetLastError()));
- }
-
-
- HELPER_METHOD_FRAME_END();
-
- FC_RETURN_BOOL(result);
-}
-FCIMPLEND
-#endif // FEATURE_LEAK_CULTURE_INFO
FCIMPL0(Object*, ThreadNative::GetDomain)
{
@@ -1754,31 +1727,7 @@ FCIMPLEND
// unloaded and this culture will survive although the type metadata will be unloaded
// and GC will crash first time accessing this object after the app domain unload.
//
-#ifdef FEATURE_LEAK_CULTURE_INFO
-FCIMPL4(FC_BOOL_RET, ThreadNative::nativeGetSafeCulture,
- ThreadBaseObject* threadUNSAFE,
- int appDomainId,
- CLR_BOOL isUI,
- OBJECTREF* safeCulture)
-{
- FCALL_CONTRACT;
-
- THREADBASEREF thread(threadUNSAFE);
-
- CULTUREINFOBASEREF pCulture = isUI ? thread->GetCurrentUICulture() : thread->GetCurrentUserCulture();
- if (pCulture != NULL) {
- if (pCulture->IsSafeCrossDomain() || pCulture->GetCreatedDomainID() == ADID(appDomainId)) {
- SetObjectReference(safeCulture, pCulture, pCulture->GetAppDomain());
- } else {
- FC_RETURN_BOOL(FALSE);
- }
- }
- FC_RETURN_BOOL(TRUE);
-}
-FCIMPLEND
-#endif // FEATURE_LEAK_CULTURE_INFO
-#ifndef FEATURE_LEAK_CULTURE_INFO
void QCALLTYPE ThreadNative::nativeInitCultureAccessors()
{
QCALL_CONTRACT;
@@ -1790,7 +1739,6 @@ void QCALLTYPE ThreadNative::nativeInitCultureAccessors()
END_QCALL;
}
-#endif // FEATURE_LEAK_CULTURE_INFO
void QCALLTYPE ThreadNative::InformThreadNameChange(QCall::ThreadHandle thread, LPCWSTR name, INT32 len)
diff --git a/src/vm/comsynchronizable.h b/src/vm/comsynchronizable.h
index 0f727cb056..61f93fa3d1 100644
--- a/src/vm/comsynchronizable.h
+++ b/src/vm/comsynchronizable.h
@@ -92,11 +92,7 @@ public:
static FCDECL1(Object*, GetContextFromContextID, LPVOID ContextID);
static FCDECL6(Object*, InternalCrossContextCallback, ThreadBaseObject* refThis, ContextBaseObject* refContext, LPVOID contextID, INT32 appDomainId, Object* oDelegateUNSAFE, PtrArray* oArgsUNSAFE);
#endif
-#ifdef FEATURE_LEAK_CULTURE_INFO
- static FCDECL4(FC_BOOL_RET, nativeGetSafeCulture, ThreadBaseObject* threadUNSAFE, int appDomainId, CLR_BOOL isUI, OBJECTREF *safeCulture);
-#else
static void QCALLTYPE nativeInitCultureAccessors();
-#endif
static
void QCALLTYPE InformThreadNameChange(QCall::ThreadHandle thread, LPCWSTR name, INT32 len);
@@ -112,9 +108,6 @@ public:
#ifdef FEATURE_COMINTEROP
static FCDECL1(void, DisableComObjectEagerCleanup, ThreadBaseObject* pThis);
#endif //FEATURE_COMINTEROP
-#ifdef FEATURE_LEAK_CULTURE_INFO
- static FCDECL1(FC_BOOL_RET,SetThreadUILocale, StringObject* localeNameUNSAFE);
-#endif // FEATURE_LEAK_CULTURE_INFO
static FCDECL1(FC_BOOL_RET,IsThreadpoolThread, ThreadBaseObject* thread);
static FCDECL0(void, FCMemoryBarrier);
diff --git a/src/vm/ecalllist.h b/src/vm/ecalllist.h
index abf79802b5..a0a714e357 100644
--- a/src/vm/ecalllist.h
+++ b/src/vm/ecalllist.h
@@ -867,11 +867,7 @@ FCFuncEnd()
FCFuncStart(gThreadFuncs)
FCDynamic("InternalGetCurrentThread", CORINFO_INTRINSIC_Illegal, ECall::InternalGetCurrentThread)
FCFuncElement("StartInternal", ThreadNative::Start)
-#ifdef FEATURE_LEAK_CULTURE_INFO
- FCFuncElement("nativeGetSafeCulture", ThreadNative::nativeGetSafeCulture)
-#else
QCFuncElement("nativeInitCultureAccessors", ThreadNative::nativeInitCultureAccessors)
-#endif
#undef Sleep
FCFuncElement("SleepInternal", ThreadNative::Sleep)
#define Sleep(a) Dont_Use_Sleep(a)
@@ -890,9 +886,6 @@ FCFuncStart(gThreadFuncs)
FCIntrinsic("GetCurrentThreadNative", ThreadNative::GetCurrentThread, CORINFO_INTRINSIC_GetCurrentManagedThread)
FCIntrinsic("get_ManagedThreadId", ThreadNative::GetManagedThreadId, CORINFO_INTRINSIC_GetManagedThreadId)
FCFuncElement("InternalFinalize", ThreadNative::Finalize)
-#ifdef FEATURE_LEAK_CULTURE_INFO
- FCFuncElement("nativeSetThreadUILocale", ThreadNative::SetThreadUILocale)
-#endif
#ifdef FEATURE_COMINTEROP_APARTMENT_SUPPORT
FCFuncElement("StartupSetApartmentStateInternal", ThreadNative::StartupSetApartmentState)
#endif // FEATURE_COMINTEROP_APARTMENT_SUPPORT
diff --git a/src/vm/mscorlib.h b/src/vm/mscorlib.h
index f466c2f20c..d2c1827e5d 100644
--- a/src/vm/mscorlib.h
+++ b/src/vm/mscorlib.h
@@ -472,14 +472,8 @@ DEFINE_FIELD_U(m_name, CultureInfoBaseObject, m_name)
DEFINE_FIELD_U(m_nonSortName, CultureInfoBaseObject, m_nonSortName)
DEFINE_FIELD_U(m_sortName, CultureInfoBaseObject, m_sortName)
DEFINE_FIELD_U(m_parent, CultureInfoBaseObject, m_parent)
-#ifdef FEATURE_LEAK_CULTURE_INFO
-DEFINE_FIELD_U(m_createdDomainID, CultureInfoBaseObject, m_createdDomainID)
-#endif // FEATURE_LEAK_CULTURE_INFO
DEFINE_FIELD_U(m_isReadOnly, CultureInfoBaseObject, m_isReadOnly)
DEFINE_FIELD_U(m_isInherited, CultureInfoBaseObject, m_isInherited)
-#ifdef FEATURE_LEAK_CULTURE_INFO
-DEFINE_FIELD_U(m_isSafeCrossDomain, CultureInfoBaseObject, m_isSafeCrossDomain)
-#endif // FEATURE_LEAK_CULTURE_INFO
#ifndef FEATURE_COREFX_GLOBALIZATION
DEFINE_FIELD_U(m_useUserOverride, CultureInfoBaseObject, m_useUserOverride)
#endif
@@ -1243,18 +1237,12 @@ DEFINE_FIELD_U(m_Context, ThreadBaseObject, m_ExposedContext)
#endif
DEFINE_FIELD_U(m_Name, ThreadBaseObject, m_Name)
DEFINE_FIELD_U(m_Delegate, ThreadBaseObject, m_Delegate)
-#ifdef FEATURE_LEAK_CULTURE_INFO
-DEFINE_FIELD_U(m_CurrentCulture, ThreadBaseObject, m_CurrentUserCulture)
-DEFINE_FIELD_U(m_CurrentUICulture, ThreadBaseObject, m_CurrentUICulture)
-#endif
DEFINE_FIELD_U(m_ThreadStartArg, ThreadBaseObject, m_ThreadStartArg)
DEFINE_FIELD_U(DONT_USE_InternalThread, ThreadBaseObject, m_InternalThread)
DEFINE_FIELD_U(m_Priority, ThreadBaseObject, m_Priority)
DEFINE_CLASS(THREAD, Threading, Thread)
-#ifndef FEATURE_LEAK_CULTURE_INFO
DEFINE_FIELD(THREAD, CULTURE, m_CurrentCulture)
DEFINE_FIELD(THREAD, UI_CULTURE, m_CurrentUICulture)
-#endif
#ifdef FEATURE_REMOTING
DEFINE_STATIC_PROPERTY(THREAD, CURRENT_CONTEXT, CurrentContext, Context)
#endif
diff --git a/src/vm/object.h b/src/vm/object.h
index aa9cc0b7e6..b76d09bb5b 100644
--- a/src/vm/object.h
+++ b/src/vm/object.h
@@ -1707,14 +1707,8 @@ private:
INT32 iDataItem; // NEVER USED, DO NOT USE THIS! (Serialized in Whidbey/Everett)
INT32 iCultureID; // NEVER USED, DO NOT USE THIS! (Serialized in Whidbey/Everett)
#endif // !FEATURE_COREFX_GLOBALIZATION
-#ifdef FEATURE_LEAK_CULTURE_INFO
- INT32 m_createdDomainID;
-#endif // FEATURE_LEAK_CULTURE_INFO
CLR_BOOL m_isReadOnly;
CLR_BOOL m_isInherited;
-#ifdef FEATURE_LEAK_CULTURE_INFO
- CLR_BOOL m_isSafeCrossDomain;
-#endif // FEATURE_LEAK_CULTURE_INFO
CLR_BOOL m_useUserOverride;
public:
@@ -1731,17 +1725,6 @@ public:
return m_name;
}// GetName
-#ifdef FEATURE_LEAK_CULTURE_INFO
- BOOL IsSafeCrossDomain()
- {
- return m_isSafeCrossDomain;
- }// IsSafeCrossDomain
-
- ADID GetCreatedDomainID()
- {
- return ADID(m_createdDomainID);
- }// GetCreatedDomain
-#endif // FEATURE_LEAK_CULTURE_INFO
}; // class CultureInfoBaseObject
@@ -1910,10 +1893,6 @@ private:
OBJECTREF m_SynchronizationContext;
OBJECTREF m_Name;
OBJECTREF m_Delegate;
-#ifdef FEATURE_LEAK_CULTURE_INFO
- CULTUREINFOBASEREF m_CurrentUserCulture;
- CULTUREINFOBASEREF m_CurrentUICulture;
-#endif
#ifdef IO_CANCELLATION_ENABLED
OBJECTREF m_CancellationSignals;
#endif
@@ -1977,14 +1956,12 @@ public:
OBJECTREF GetDelegate() { LIMITED_METHOD_CONTRACT; return m_Delegate; }
void SetDelegate(OBJECTREF delegate);
-#ifndef FEATURE_LEAK_CULTURE_INFO
CULTUREINFOBASEREF GetCurrentUserCulture();
CULTUREINFOBASEREF GetCurrentUICulture();
OBJECTREF GetManagedThreadCulture(BOOL bUICulture);
void ResetManagedThreadCulture(BOOL bUICulture);
void ResetCurrentUserCulture();
void ResetCurrentUICulture();
-#endif
#ifdef FEATURE_REMOTING
// These expose the remoting context (System\Remoting\Context)
@@ -2004,31 +1981,6 @@ public:
}
#endif
-#ifdef FEATURE_LEAK_CULTURE_INFO
- CULTUREINFOBASEREF GetCurrentUserCulture()
- {
- LIMITED_METHOD_CONTRACT;
- return m_CurrentUserCulture;
- }
-
- void ResetCurrentUserCulture()
- {
- WRAPPER_NO_CONTRACT;
- ClearObjectReference((OBJECTREF *)&m_CurrentUserCulture);
- }
-
- CULTUREINFOBASEREF GetCurrentUICulture()
- {
- LIMITED_METHOD_CONTRACT;
- return m_CurrentUICulture;
- }
-
- void ResetCurrentUICulture()
- {
- WRAPPER_NO_CONTRACT;
- ClearObjectReference((OBJECTREF *)&m_CurrentUICulture);
- }
-#endif // FEATURE_LEAK_CULTURE_INFO
OBJECTREF GetSynchronizationContext()
{
diff --git a/src/vm/threads.cpp b/src/vm/threads.cpp
index c4a4b3a070..570a56af0d 100644
--- a/src/vm/threads.cpp
+++ b/src/vm/threads.cpp
@@ -2032,10 +2032,8 @@ Thread::Thread()
contextHolder.SuppressRelease();
savedRedirectContextHolder.SuppressRelease();
-#ifndef FEATURE_LEAK_CULTURE_INFO
managedThreadCurrentCulture = NULL;
managedThreadCurrentUICulture = NULL;
-#endif // FEATURE_LEAK_CULTURE_INFO
#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING
m_ullProcessorUsageBaseline = 0;
@@ -3508,15 +3506,6 @@ void Thread::OnThreadTerminate(BOOL holdingLock)
// Free all structures related to thread statics for this thread
DeleteThreadStaticData();
-#ifdef FEATURE_LEAK_CULTURE_INFO
- //Clear the references which could create cycles
- // This allows the GC to collect them
- THREADBASEREF thread = (THREADBASEREF) GetExposedObjectRaw();
- if (thread != NULL)
- {
- thread->ResetCulture();
- }
-#endif
}
if (GCHeapUtilities::IsGCHeapInitialized())
@@ -10170,38 +10159,7 @@ void Thread::DeleteThreadStaticData(AppDomain *pDomain)
}
}
-#ifdef FEATURE_LEAK_CULTURE_INFO
-void Thread::ResetCultureForDomain(ADID id)
-{
- CONTRACTL {
- NOTHROW;
- GC_NOTRIGGER;
- MODE_COOPERATIVE;
- }
- CONTRACTL_END;
-
- THREADBASEREF thread = (THREADBASEREF) GetExposedObjectRaw();
-
- if (thread == NULL)
- return;
-
- CULTUREINFOBASEREF userCulture = thread->GetCurrentUserCulture();
- if (userCulture != NULL)
- {
- if (!userCulture->IsSafeCrossDomain() && userCulture->GetCreatedDomainID() == id)
- thread->ResetCurrentUserCulture();
- }
-
- CULTUREINFOBASEREF UICulture = thread->GetCurrentUICulture();
- if (UICulture != NULL)
- {
- if (!UICulture->IsSafeCrossDomain() && UICulture->GetCreatedDomainID() == id)
- thread->ResetCurrentUICulture();
- }
-}
-#endif // FEATURE_LEAK_CULTURE_INFO
-#ifndef FEATURE_LEAK_CULTURE_INFO
void Thread::InitCultureAccessors()
{
CONTRACTL {
@@ -10225,7 +10183,6 @@ void Thread::InitCultureAccessors()
pCurrentCulture = (OBJECTREF*)pThread->GetStaticFieldAddress(managedThreadCurrentUICulture);
}
}
-#endif // FEATURE_LEAK_CULTURE_INFO
ARG_SLOT Thread::CallPropertyGet(BinderMethodID id, OBJECTREF pObject)
diff --git a/src/vm/threads.h b/src/vm/threads.h
index 86847aeeeb..9dfa6ef6fb 100644
--- a/src/vm/threads.h
+++ b/src/vm/threads.h
@@ -3543,9 +3543,6 @@ public:
OBJECTREF GetCulture(BOOL bUICulture);
// Release user cultures that can't survive appdomain unload
-#ifdef FEATURE_LEAK_CULTURE_INFO
- void ResetCultureForDomain(ADID id);
-#endif // FEATURE_LEAK_CULTURE_INFO
// Functions to set the culture on the thread.
void SetCultureId(LCID lcid, BOOL bUICulture);
@@ -4487,11 +4484,9 @@ public:
public:
typedef Holder<Thread *, DoNothing, Thread::LoadingFileRelease> LoadingFileHolder;
-#ifndef FEATURE_LEAK_CULTURE_INFO
void InitCultureAccessors();
FieldDesc *managedThreadCurrentCulture;
FieldDesc *managedThreadCurrentUICulture;
-#endif
private:
// Don't allow a thread to be asynchronously stopped or interrupted (e.g. because
// it is performing a <clinit>)