diff options
author | Jan Vorlicek <janvorli@microsoft.com> | 2018-10-05 03:08:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-05 03:08:51 +0200 |
commit | da6498e6c1013dd38d33e782bc777bd89aa0f0ee (patch) | |
tree | 66db7870d220d7cf717af5ef4aa8fdfc950590b5 /src/vm | |
parent | 7f59d17e2741e69bf878b8b168828de3a0a3d12e (diff) | |
download | coreclr-da6498e6c1013dd38d33e782bc777bd89aa0f0ee.tar.gz coreclr-da6498e6c1013dd38d33e782bc777bd89aa0f0ee.tar.bz2 coreclr-da6498e6c1013dd38d33e782bc777bd89aa0f0ee.zip |
Remove context statics stuff (#20256)
* Remove context statics stuff part 1
This change removes all context statics stuff from the runtime since
context statics are not supported and this code was obsolete.
* Remove context statics stuff from the debugger code
Diffstat (limited to 'src/vm')
-rw-r--r-- | src/vm/appdomain.cpp | 24 | ||||
-rw-r--r-- | src/vm/appdomain.hpp | 7 | ||||
-rw-r--r-- | src/vm/array.cpp | 1 | ||||
-rw-r--r-- | src/vm/class.cpp | 4 | ||||
-rw-r--r-- | src/vm/classnames.h | 1 | ||||
-rw-r--r-- | src/vm/field.cpp | 6 | ||||
-rw-r--r-- | src/vm/field.h | 8 | ||||
-rw-r--r-- | src/vm/generics.cpp | 6 | ||||
-rw-r--r-- | src/vm/jitinterface.cpp | 8 | ||||
-rw-r--r-- | src/vm/methodtable.h | 10 | ||||
-rw-r--r-- | src/vm/methodtable.inl | 3 | ||||
-rw-r--r-- | src/vm/methodtablebuilder.cpp | 28 | ||||
-rw-r--r-- | src/vm/methodtablebuilder.h | 18 | ||||
-rw-r--r-- | src/vm/object.h | 79 | ||||
-rw-r--r-- | src/vm/prestub.cpp | 2 | ||||
-rw-r--r-- | src/vm/proftoeeinterfaceimpl.cpp | 14 |
16 files changed, 17 insertions, 202 deletions
diff --git a/src/vm/appdomain.cpp b/src/vm/appdomain.cpp index 8f8efcf0fc..61f709a9ca 100644 --- a/src/vm/appdomain.cpp +++ b/src/vm/appdomain.cpp @@ -726,7 +726,6 @@ BaseDomain::BaseDomain() m_pMarshalingData = NULL; - m_dwContextStatics = 0; #ifdef FEATURE_COMINTEROP m_pMngStdInterfacesInfo = NULL; m_pWinRtBinder = NULL; @@ -973,29 +972,6 @@ void BaseDomain::InitVSD() #ifndef CROSSGEN_COMPILE -DWORD BaseDomain::AllocateContextStaticsOffset(DWORD* pOffsetSlot) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - } - CONTRACTL_END; - - CrstHolder ch(&m_SpecialStaticsCrst); - - DWORD dwOffset = *pOffsetSlot; - - if (dwOffset == (DWORD)-1) - { - // Allocate the slot - dwOffset = m_dwContextStatics++; - *pOffsetSlot = dwOffset; - } - - return dwOffset; -} - void BaseDomain::ClearFusionContext() { CONTRACTL diff --git a/src/vm/appdomain.hpp b/src/vm/appdomain.hpp index 5ffc1b2045..6ba9ff4774 100644 --- a/src/vm/appdomain.hpp +++ b/src/vm/appdomain.hpp @@ -1431,17 +1431,10 @@ protected: PTR_CLRPrivBinderWinRT m_pWinRtBinder; #endif // FEATURE_COMINTEROP - // Number of allocated slots for context local statics of this domain - DWORD m_dwContextStatics; - // Protects allocation of slot IDs for thread and context statics static CrstStatic m_SpecialStaticsCrst; public: - // Lazily allocate offset for context static - DWORD AllocateContextStaticsOffset(DWORD* pOffsetSlot); - -public: // Only call this routine when you can guarantee there are no // loads in progress. void ClearFusionContext(); diff --git a/src/vm/array.cpp b/src/vm/array.cpp index 5103e9efc0..e41573c497 100644 --- a/src/vm/array.cpp +++ b/src/vm/array.cpp @@ -348,7 +348,6 @@ MethodTable* Module::CreateArrayMethodTable(TypeHandle elemTypeHnd, CorElementTy FALSE, // CCWTemplate FALSE, // RCWPerTypeData FALSE, // RemotingVtsInfo - FALSE, // ContextStatic FALSE); // TokenOverflow // This is the offset of the beginning of the interface map diff --git a/src/vm/class.cpp b/src/vm/class.cpp index fe7fe7e8a7..08d0015424 100644 --- a/src/vm/class.cpp +++ b/src/vm/class.cpp @@ -384,8 +384,7 @@ VOID EEClass::FixupFieldDescForEnC(MethodTable * pMT, EnCFieldDesc *pFD, mdField NULL, NULL, &genericsInfo, - &bmtEnumFields, - NULL); + &bmtEnumFields); EX_TRY { @@ -400,7 +399,6 @@ VOID EEClass::FixupFieldDescForEnC(MethodTable * pMT, EnCFieldDesc *pFD, mdField &pByValueClassCache, &bmtMFDescs, &bmtFP, - NULL, // not needed as thread or context static are not allowed in EnC &totalDeclaredFieldSize); } EX_CATCH_THROWABLE(&pThrowable); diff --git a/src/vm/classnames.h b/src/vm/classnames.h index fec3052326..1c1c545451 100644 --- a/src/vm/classnames.h +++ b/src/vm/classnames.h @@ -96,7 +96,6 @@ #define g_MarshalByRefObjectClassName "System.MarshalByRefObject" #define g_ThreadStaticAttributeClassName "System.ThreadStaticAttribute" -#define g_ContextStaticAttributeClassName "System.ContextStaticAttribute" #define g_StringFreezingAttributeClassName "System.Runtime.CompilerServices.StringFreezingAttribute" #define g_TypeIdentifierAttributeClassName "System.Runtime.InteropServices.TypeIdentifierAttribute" diff --git a/src/vm/field.cpp b/src/vm/field.cpp index 78cb7f5bd0..4c4d89a670 100644 --- a/src/vm/field.cpp +++ b/src/vm/field.cpp @@ -20,7 +20,7 @@ #include "peimagelayout.inl" // called from code:MethodTableBuilder::InitializeFieldDescs#InitCall -VOID FieldDesc::Init(mdFieldDef mb, CorElementType FieldType, DWORD dwMemberAttrs, BOOL fIsStatic, BOOL fIsRVA, BOOL fIsThreadLocal, BOOL fIsContextLocal, LPCSTR pszFieldName) +VOID FieldDesc::Init(mdFieldDef mb, CorElementType FieldType, DWORD dwMemberAttrs, BOOL fIsStatic, BOOL fIsRVA, BOOL fIsThreadLocal, LPCSTR pszFieldName) { LIMITED_METHOD_CONTRACT; @@ -46,8 +46,8 @@ VOID FieldDesc::Init(mdFieldDef mb, CorElementType FieldType, DWORD dwMemberAttr FieldType == ELEMENT_TYPE_PTR || FieldType == ELEMENT_TYPE_FNPTR ); - _ASSERTE(fIsStatic || (!fIsRVA && !fIsThreadLocal && !fIsContextLocal)); - _ASSERTE(fIsRVA + fIsThreadLocal + fIsContextLocal <= 1); + _ASSERTE(fIsStatic || (!fIsRVA && !fIsThreadLocal)); + _ASSERTE(fIsRVA + fIsThreadLocal <= 1); m_requiresFullMbValue = 0; SetMemberDef(mb); diff --git a/src/vm/field.h b/src/vm/field.h index 4962fce618..a09b4050fa 100644 --- a/src/vm/field.h +++ b/src/vm/field.h @@ -133,7 +133,6 @@ public: BOOL fIsStatic, BOOL fIsRVA, BOOL fIsThreadLocal, - BOOL fIsContextLocal, LPCSTR pszFieldName); enum { @@ -322,13 +321,6 @@ public: return m_isThreadLocal; } - BOOL IsContextStatic() const // Static relative to a context - { - LIMITED_METHOD_DAC_CONTRACT; - - return FALSE; - } - // Indicate that this field was added by EnC // Must only be called on instances of EnCFieldDesc void SetEnCNew() diff --git a/src/vm/generics.cpp b/src/vm/generics.cpp index a92177d9d0..26cd8a5356 100644 --- a/src/vm/generics.cpp +++ b/src/vm/generics.cpp @@ -225,7 +225,6 @@ ClassLoader::CreateTypeHandleForNonCanonicalGenericInstantiation( // These are all copied across from the old MT, i.e. don't depend on the // instantiation. BOOL fHasRemotingVtsInfo = FALSE; - BOOL fHasContextStatics = FALSE; BOOL fHasGenericsStaticsInfo = pOldMT->HasGenericsStaticsInfo(); #ifdef FEATURE_COMINTEROP @@ -239,10 +238,6 @@ ClassLoader::CreateTypeHandleForNonCanonicalGenericInstantiation( // Collectible types have some special restrictions if (pAllocator->IsCollectible()) { - if (fHasContextStatics) - { - ClassLoader::ThrowTypeLoadException(pTypeKey, IDS_CLASSLOAD_COLLECTIBLESPECIALSTATICS); - } if (pOldMT->HasFixedAddressVTStatics()) { ClassLoader::ThrowTypeLoadException(pTypeKey, IDS_CLASSLOAD_COLLECTIBLEFIXEDVTATTR); @@ -289,7 +284,6 @@ ClassLoader::CreateTypeHandleForNonCanonicalGenericInstantiation( fHasCCWTemplate, fHasRCWPerTypeData, fHasRemotingVtsInfo, - fHasContextStatics, pOldMT->HasTokenOverflow()); // We need space for the PerInstInfo, i.e. the generic dictionary pointers... diff --git a/src/vm/jitinterface.cpp b/src/vm/jitinterface.cpp index 28e17e9e3e..293bab97d9 100644 --- a/src/vm/jitinterface.cpp +++ b/src/vm/jitinterface.cpp @@ -1561,13 +1561,6 @@ void CEEInfo::getFieldInfo (CORINFO_RESOLVED_TOKEN * pResolvedToken, fieldFlags |= CORINFO_FLG_FIELD_INITCLASS; } else - if (pField->IsContextStatic()) - { - fieldAccessor = CORINFO_FIELD_STATIC_ADDR_HELPER; - - pResult->helper = CORINFO_HELP_GETSTATICFIELDADDR_CONTEXT; - } - else { // Regular or thread static CORINFO_FIELD_ACCESSOR intrinsicAccessor; @@ -1619,7 +1612,6 @@ void CEEInfo::getFieldInfo (CORINFO_RESOLVED_TOKEN * pResolvedToken, // if ((flags & CORINFO_ACCESS_ADDRESS) && !pField->IsThreadStatic() && - !pField->IsContextStatic() && (fieldAccessor != CORINFO_FIELD_STATIC_TLS)) { fieldFlags |= CORINFO_FLG_FIELD_SAFESTATIC_BYREF_RETURN; diff --git a/src/vm/methodtable.h b/src/vm/methodtable.h index 2e9241242e..5d12796287 100644 --- a/src/vm/methodtable.h +++ b/src/vm/methodtable.h @@ -364,15 +364,6 @@ struct RemotingVtsInfo typedef DPTR(RemotingVtsInfo) PTR_RemotingVtsInfo; -struct ContextStaticsBucket -{ - // Offset which points to the CLS storage. Allocated lazily - -1 means no offset allocated yet. - DWORD m_dwContextStaticsOffset; - // Size of CLS fields - WORD m_wContextStaticsSize; -}; -typedef DPTR(ContextStaticsBucket) PTR_ContextStaticsBucket; - #ifdef FEATURE_COMINTEROP struct RCWPerTypeData; #endif // FEATURE_COMINTEROP @@ -4356,7 +4347,6 @@ private: BOOL needsCCWTemplate, BOOL needsRCWPerTypeData, BOOL needsRemotingVtsInfo, - BOOL needsContextStatic, BOOL needsTokenOverflow); inline DWORD GetOptionalMembersSize(); diff --git a/src/vm/methodtable.inl b/src/vm/methodtable.inl index f669f23a98..602163067d 100644 --- a/src/vm/methodtable.inl +++ b/src/vm/methodtable.inl @@ -1400,7 +1400,6 @@ inline DWORD MethodTable::GetOptionalMembersAllocationSize(DWORD dwMultipurposeS BOOL needsCCWTemplate, BOOL needsRCWPerTypeData, BOOL needsRemotingVtsInfo, - BOOL needsContextStatic, BOOL needsTokenOverflow) { LIMITED_METHOD_CONTRACT; @@ -1419,8 +1418,6 @@ inline DWORD MethodTable::GetOptionalMembersAllocationSize(DWORD dwMultipurposeS size += sizeof(UINT_PTR); if (needsRemotingVtsInfo) size += sizeof(UINT_PTR); - if (needsContextStatic) - size += sizeof(UINT_PTR); if (dwMultipurposeSlotsMask & enum_flag_HasInterfaceMap) size += sizeof(UINT_PTR); if (needsTokenOverflow) diff --git a/src/vm/methodtablebuilder.cpp b/src/vm/methodtablebuilder.cpp index 15ce7d2af3..6450e3507f 100644 --- a/src/vm/methodtablebuilder.cpp +++ b/src/vm/methodtablebuilder.cpp @@ -774,8 +774,7 @@ void MethodTableBuilder::SetBMTData( bmtGCSeriesInfo *bmtGCSeries, bmtMethodImplInfo *bmtMethodImpl, const bmtGenericsInfo *bmtGenerics, - bmtEnumFieldInfo *bmtEnumFields, - bmtContextStaticInfo *bmtCSInfo) + bmtEnumFieldInfo *bmtEnumFields) { LIMITED_METHOD_CONTRACT; this->bmtAllocator = bmtAllocator; @@ -793,7 +792,6 @@ void MethodTableBuilder::SetBMTData( this->bmtMethodImpl = bmtMethodImpl; this->bmtGenerics = bmtGenerics; this->bmtEnumFields = bmtEnumFields; - this->bmtCSInfo = bmtCSInfo; } //******************************************************************************* @@ -1297,8 +1295,7 @@ MethodTableBuilder::BuildMethodTableThrowing( new (GetStackingAllocator()) bmtGCSeriesInfo(), new (GetStackingAllocator()) bmtMethodImplInfo(), bmtGenericsInfo, - new (GetStackingAllocator()) bmtEnumFieldInfo(pModule->GetMDImport()), - new (GetStackingAllocator()) bmtContextStaticInfo()); + new (GetStackingAllocator()) bmtEnumFieldInfo(pModule->GetMDImport())); //Initialize structs @@ -1751,7 +1748,7 @@ MethodTableBuilder::BuildMethodTableThrowing( // Go thru all fields and initialize their FieldDescs. InitializeFieldDescs(GetApproxFieldDescListRaw(), pLayoutRawFieldInfos, bmtInternal, bmtGenerics, bmtMetaData, bmtEnumFields, bmtError, - &pByValueClassCache, bmtMFDescs, bmtFP, bmtCSInfo, + &pByValueClassCache, bmtMFDescs, bmtFP, &totalDeclaredFieldSize); // Place regular static fields @@ -3687,7 +3684,6 @@ VOID MethodTableBuilder::InitializeFieldDescs(FieldDesc *pFieldDescList, MethodTable *** pByValueClassCache, bmtMethAndFieldDescs* bmtMFDescs, bmtFieldPlacement* bmtFP, - bmtContextStaticInfo* pbmtCSInfo, unsigned* totalDeclaredSize) { CONTRACTL @@ -3764,7 +3760,6 @@ VOID MethodTableBuilder::InitializeFieldDescs(FieldDesc *pFieldDescList, MethodTable * pByValueClass = NULL; BOOL fIsByValue = FALSE; BOOL fIsThreadStatic = FALSE; - static const BOOL fIsContextStatic = FALSE; BOOL fHasRVA = FALSE; MetaSig fsig(pMemberSignature, @@ -3817,18 +3812,14 @@ VOID MethodTableBuilder::InitializeFieldDescs(FieldDesc *pFieldDescList, // Do some sanity checks that we are not mixing context and thread // relative statics. - if (fHasRVA && (fIsThreadStatic || fIsContextStatic)) + if (fHasRVA && fIsThreadStatic) { IfFailThrow(COR_E_TYPELOAD); } - if ((fIsContextStatic || bmtFP->fHasFixedAddressValueTypes) && GetAssembly()->IsCollectible()) + if (bmtFP->fHasFixedAddressValueTypes && GetAssembly()->IsCollectible()) { - if (bmtFP->fHasFixedAddressValueTypes) - { - BuildMethodTableThrowException(IDS_CLASSLOAD_COLLECTIBLEFIXEDVTATTR); - } - BuildMethodTableThrowException(IDS_CLASSLOAD_COLLECTIBLESPECIALSTATICS); + BuildMethodTableThrowException(IDS_CLASSLOAD_COLLECTIBLEFIXEDVTATTR); } } @@ -4212,7 +4203,6 @@ VOID MethodTableBuilder::InitializeFieldDescs(FieldDesc *pFieldDescList, fIsStatic, fHasRVA, fIsThreadStatic, - fIsContextStatic, pszFieldName ); @@ -9801,8 +9791,7 @@ MethodTable * MethodTableBuilder::AllocateNewMT(Module *pLoaderModule, BOOL fHasGenericsStaticsInfo, BOOL fNeedsRCWPerTypeData, BOOL fNeedsRemotableMethodInfo, - BOOL fNeedsRemotingVtsInfo, - BOOL fHasContextStatics + BOOL fNeedsRemotingVtsInfo #ifdef FEATURE_COMINTEROP , BOOL fHasDynamicInterfaceMap #endif @@ -9853,7 +9842,6 @@ MethodTable * MethodTableBuilder::AllocateNewMT(Module *pLoaderModule, FALSE, // no CCW template needed for canonical instantiations fNeedsRCWPerTypeData, fNeedsRemotingVtsInfo, - fHasContextStatics, RidFromToken(GetCl()) >= METHODTABLE_TOKEN_OVERFLOW); // Interface map starts here @@ -10102,7 +10090,6 @@ MethodTableBuilder::SetupMethodTable2( : 0; - BOOL fHasContextStatics = FALSE; BOOL fNeedsRemotableMethodInfo=FALSE; BOOL fNeedsRemotingVtsInfo = FALSE; @@ -10147,7 +10134,6 @@ MethodTableBuilder::SetupMethodTable2( fNeedsRCWPerTypeData, fNeedsRemotableMethodInfo, fNeedsRemotingVtsInfo, - fHasContextStatics, #ifdef FEATURE_COMINTEROP fHasDynamicInterfaceMap, #endif diff --git a/src/vm/methodtablebuilder.h b/src/vm/methodtablebuilder.h index a2275af24f..cbcde31e03 100644 --- a/src/vm/methodtablebuilder.h +++ b/src/vm/methodtablebuilder.h @@ -79,15 +79,6 @@ public: #endif //_DEBUG }; // struct bmtGenericsInfo - - // information for Thread and Context Static. Filled by InitializedFieldDesc and used when - // setting up a MethodTable - struct bmtContextStaticInfo - { - - inline bmtContextStaticInfo() { LIMITED_METHOD_CONTRACT; memset((void *)this, NULL, sizeof(*this)); } - }; - MethodTableBuilder( MethodTable * pHalfBakedMT, EEClass * pHalfBakedClass, @@ -114,7 +105,6 @@ public: NULL, NULL, NULL, - NULL, NULL); } public: @@ -2212,7 +2202,6 @@ private: bmtMethodImplInfo *bmtMethodImpl; const bmtGenericsInfo *bmtGenerics; bmtEnumFieldInfo *bmtEnumFields; - bmtContextStaticInfo *bmtCSInfo; void SetBMTData( LoaderAllocator *bmtAllocator, @@ -2229,8 +2218,7 @@ private: bmtGCSeriesInfo *bmtGCSeries, bmtMethodImplInfo *bmtMethodImpl, const bmtGenericsInfo *bmtGenerics, - bmtEnumFieldInfo *bmtEnumFields, - bmtContextStaticInfo *bmtCSInfo); + bmtEnumFieldInfo *bmtEnumFields); // -------------------------------------------------------------------------------------------- // Returns the parent bmtRTType pointer. Can be null if no parent exists. @@ -2585,7 +2573,6 @@ private: MethodTable***, bmtMethAndFieldDescs*, bmtFieldPlacement*, - bmtContextStaticInfo*, unsigned * totalDeclaredSize); // -------------------------------------------------------------------------------------------- @@ -2955,8 +2942,7 @@ private: BOOL fHasGenericsStaticsInfo, BOOL fNeedsRCWPerTypeData, BOOL fNeedsRemotableMethodInfo, - BOOL fNeedsRemotingVtsInfo, - BOOL fHasContextStatics + BOOL fNeedsRemotingVtsInfo #ifdef FEATURE_COMINTEROP , BOOL bHasDynamicInterfaceMap #endif diff --git a/src/vm/object.h b/src/vm/object.h index e8ed2e77eb..5651a142dd 100644 --- a/src/vm/object.h +++ b/src/vm/object.h @@ -54,8 +54,6 @@ void ErectWriteBarrierForMT(MethodTable **dst, MethodTable *ref); * +-- code:AppDomainBaseObject - The base object for the class AppDomain * | * +-- code:AssemblyBaseObject - The base object for the class Assembly - * | - * +-- code:ContextBaseObject - base object for class Context * * * PLEASE NOTE THE FOLLOWING WHEN ADDING A NEW OBJECT TYPE: @@ -1576,80 +1574,6 @@ class MarshalByRefObjectBaseObject : public Object { }; - -// ContextBaseObject -// This class is the base class for Contexts -// -class ContextBaseObject : public Object -{ - friend class Context; - friend class MscorlibBinder; - - private: - // READ ME: - // Modifying the order or fields of this object may require other changes to the - // classlib class definition of this object. - - OBJECTREF m_ctxProps; // array of name-value pairs of properties - OBJECTREF m_dphCtx; // dynamic property holder - OBJECTREF m_localDataStore; // context local store - OBJECTREF m_serverContextChain; // server context sink chain - OBJECTREF m_clientContextChain; // client context sink chain - OBJECTREF m_exposedAppDomain; //appDomain ?? - PTRARRAYREF m_ctxStatics; // holder for context relative statics - - Context* m_internalContext; // Pointer to the VM context - - INT32 _ctxID; - INT32 _ctxFlags; - INT32 _numCtxProps; // current count of properties - - INT32 _ctxStaticsCurrentBucket; - INT32 _ctxStaticsFreeIndex; - - protected: - ContextBaseObject() { LIMITED_METHOD_CONTRACT; } - ~ContextBaseObject() { LIMITED_METHOD_CONTRACT; } - - public: - - void SetInternalContext(Context* pCtx) - { - LIMITED_METHOD_CONTRACT; - // either transitioning from NULL to non-NULL or vice versa. - // But not setting NULL to NULL or non-NULL to non-NULL. - _ASSERTE((m_internalContext == NULL) != (pCtx == NULL)); - m_internalContext = pCtx; - } - - Context* GetInternalContext() - { - LIMITED_METHOD_CONTRACT; - return m_internalContext; - } - - OBJECTREF GetExposedDomain() { return m_exposedAppDomain; } - OBJECTREF SetExposedDomain(OBJECTREF newDomain) - { - LIMITED_METHOD_CONTRACT; - OBJECTREF oldDomain = m_exposedAppDomain; - SetObjectReference( (OBJECTREF *)&m_exposedAppDomain, newDomain, GetAppDomain() ); - return oldDomain; - } - - PTRARRAYREF GetContextStaticsHolder() - { - LIMITED_METHOD_CONTRACT; - SUPPORTS_DAC; - // The code that needs this should have faulted it in by now! - _ASSERTE(m_ctxStatics != NULL); - - return m_ctxStatics; - } -}; - -typedef DPTR(ContextBaseObject) PTR_ContextBaseObject; - // AppDomainBaseObject // This class is the base class for application domains // @@ -2029,8 +1953,6 @@ typedef REF<AppDomainBaseObject> APPDOMAINREF; typedef REF<MarshalByRefObjectBaseObject> MARSHALBYREFOBJECTBASEREF; -typedef REF<ContextBaseObject> CONTEXTBASEREF; - typedef REF<AssemblyBaseObject> ASSEMBLYREF; typedef REF<AssemblyNameBaseObject> ASSEMBLYNAMEREF; @@ -2084,7 +2006,6 @@ typedef PTR_ThreadBaseObject THREADBASEREF; typedef PTR_AppDomainBaseObject APPDOMAINREF; typedef PTR_AssemblyBaseObject ASSEMBLYREF; typedef PTR_AssemblyNameBaseObject ASSEMBLYNAMEREF; -typedef PTR_ContextBaseObject CONTEXTBASEREF; #ifndef DACCESS_COMPILE typedef MarshalByRefObjectBaseObject* MARSHALBYREFOBJECTBASEREF; diff --git a/src/vm/prestub.cpp b/src/vm/prestub.cpp index 1893cf6c23..cec6447c2e 100644 --- a/src/vm/prestub.cpp +++ b/src/vm/prestub.cpp @@ -2885,7 +2885,7 @@ PCODE DynamicHelperFixup(TransitionBlock * pTransitionBlock, TADDR * pCell, DWOR { if (pFD != NULL) { - if (pFD->IsRVA() || pFD->IsContextStatic()) + if (pFD->IsRVA()) { _ASSERTE(!"Fast getter for rare kinds of static fields"); } diff --git a/src/vm/proftoeeinterfaceimpl.cpp b/src/vm/proftoeeinterfaceimpl.cpp index 7127072cdf..425ceb87f7 100644 --- a/src/vm/proftoeeinterfaceimpl.cpp +++ b/src/vm/proftoeeinterfaceimpl.cpp @@ -3132,8 +3132,7 @@ HRESULT ProfToEEInterfaceImpl::GetRVAStaticAddress(ClassID classId, // if(!pFieldDesc->IsStatic() || !pFieldDesc->IsRVA() || - pFieldDesc->IsThreadStatic() || - pFieldDesc->IsContextStatic()) + pFieldDesc->IsThreadStatic()) { return E_INVALIDARG; } @@ -3271,8 +3270,7 @@ HRESULT ProfToEEInterfaceImpl::GetAppDomainStaticAddress(ClassID classId, // if(!pFieldDesc->IsStatic() || pFieldDesc->IsRVA() || - pFieldDesc->IsThreadStatic() || - pFieldDesc->IsContextStatic()) + pFieldDesc->IsThreadStatic()) { return E_INVALIDARG; } @@ -3494,8 +3492,7 @@ HRESULT ProfToEEInterfaceImpl::GetThreadStaticAddress2(ClassID classId, // if(!pFieldDesc->IsStatic() || !pFieldDesc->IsThreadStatic() || - pFieldDesc->IsRVA() || - pFieldDesc->IsContextStatic()) + pFieldDesc->IsRVA()) { return E_INVALIDARG; } @@ -3740,11 +3737,6 @@ HRESULT ProfToEEInterfaceImpl::GetStaticFieldInfo(ClassID classId, *pFieldInfo = COR_PRF_FIELD_NOT_A_STATIC; - if (pFieldDesc->IsContextStatic()) - { - *pFieldInfo = (COR_PRF_STATIC_TYPE)(*pFieldInfo | COR_PRF_FIELD_CONTEXT_STATIC); - } - if (pFieldDesc->IsRVA()) { *pFieldInfo = (COR_PRF_STATIC_TYPE)(*pFieldInfo | COR_PRF_FIELD_RVA_STATIC); |