summaryrefslogtreecommitdiff
path: root/src/vm
diff options
context:
space:
mode:
authorJan Vorlicek <janvorli@microsoft.com>2018-10-05 03:08:51 +0200
committerGitHub <noreply@github.com>2018-10-05 03:08:51 +0200
commitda6498e6c1013dd38d33e782bc777bd89aa0f0ee (patch)
tree66db7870d220d7cf717af5ef4aa8fdfc950590b5 /src/vm
parent7f59d17e2741e69bf878b8b168828de3a0a3d12e (diff)
downloadcoreclr-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.cpp24
-rw-r--r--src/vm/appdomain.hpp7
-rw-r--r--src/vm/array.cpp1
-rw-r--r--src/vm/class.cpp4
-rw-r--r--src/vm/classnames.h1
-rw-r--r--src/vm/field.cpp6
-rw-r--r--src/vm/field.h8
-rw-r--r--src/vm/generics.cpp6
-rw-r--r--src/vm/jitinterface.cpp8
-rw-r--r--src/vm/methodtable.h10
-rw-r--r--src/vm/methodtable.inl3
-rw-r--r--src/vm/methodtablebuilder.cpp28
-rw-r--r--src/vm/methodtablebuilder.h18
-rw-r--r--src/vm/object.h79
-rw-r--r--src/vm/prestub.cpp2
-rw-r--r--src/vm/proftoeeinterfaceimpl.cpp14
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);