summaryrefslogtreecommitdiff
path: root/src/vm/olevariant.cpp
diff options
context:
space:
mode:
authorDavid Wrighton <davidwr@microsoft.com>2019-04-03 15:54:05 -0700
committerGitHub <noreply@github.com>2019-04-03 15:54:05 -0700
commitd3e39bc2f81e3dbf9e4b96347f62b49d8700336c (patch)
tree78b72499a0f38e9dbf6ae4d6d24c77779ac543dc /src/vm/olevariant.cpp
parenta7dd6192530dec1d424c359233a1b92f559fa92a (diff)
downloadcoreclr-d3e39bc2f81e3dbf9e4b96347f62b49d8700336c.tar.gz
coreclr-d3e39bc2f81e3dbf9e4b96347f62b49d8700336c.tar.bz2
coreclr-d3e39bc2f81e3dbf9e4b96347f62b49d8700336c.zip
Remove ADID and ADIndex from CoreCLR (#23588)
- Remove concept of AppDomain from object api in VM - Various infrastructure around entering/leaving appdomains is removed - Add small implementation of GetAppDomain for use by DAC (to match existing behavior) - Simplify finalizer thread operations - Eliminate AppDomain::Terminate - Remove use of ADID from stresslog - Remove thread enter/leave tracking from AppDomain - Remove unused asm constants across all architectures - Re-order header inclusion order to put gcenv.h before handletable - Remove retail only sync block code involving appdomain index
Diffstat (limited to 'src/vm/olevariant.cpp')
-rw-r--r--src/vm/olevariant.cpp81
1 files changed, 29 insertions, 52 deletions
diff --git a/src/vm/olevariant.cpp b/src/vm/olevariant.cpp
index 887d4520b6..1241cde485 100644
--- a/src/vm/olevariant.cpp
+++ b/src/vm/olevariant.cpp
@@ -1762,7 +1762,7 @@ void OleVariant::MarshalInterfaceArrayOleToCom(void *oleArray, BASEARRAYREF *pCo
pCom = (OBJECTREF *) (unprotectedArray->GetAddress() + currentOffset);
}
- SetObjectReference(pCom++, obj, pDomain);
+ SetObjectReference(pCom++, obj);
}
}
GCPROTECT_END();
@@ -1904,7 +1904,7 @@ void OleVariant::MarshalBSTRArrayOleToCom(void *oleArray, BASEARRAYREF *pComArra
pCom = (STRINGREF *) (unprotectedArray->GetAddress() + currentOffset);
}
- SetObjectReference((OBJECTREF*) pCom++, (OBJECTREF) stringObj, pDomain);
+ SetObjectReference((OBJECTREF*) pCom++, (OBJECTREF) stringObj);
}
}
GCPROTECT_END();
@@ -2122,7 +2122,7 @@ void OleVariant::MarshalLPWSTRArrayOleToCom(void *oleArray, BASEARRAYREF *pComAr
pCom = (STRINGREF *) (unprotectedArray->GetAddress() + currentOffset);
}
- SetObjectReference((OBJECTREF*) pCom++, (OBJECTREF) string, pDomain);
+ SetObjectReference((OBJECTREF*) pCom++, (OBJECTREF) string);
}
}
@@ -2258,7 +2258,7 @@ void OleVariant::MarshalLPSTRArrayOleToCom(void *oleArray, BASEARRAYREF *pComArr
pCom = (STRINGREF *) (unprotectedArray->GetAddress() + currentOffset);
}
- SetObjectReference((OBJECTREF*) pCom++, (OBJECTREF) string, pDomain);
+ SetObjectReference((OBJECTREF*) pCom++, (OBJECTREF) string);
}
}
@@ -3066,137 +3066,118 @@ void OleVariant::MarshalObjectForOleVariant(const VARIANT * pOle, OBJECTREF * co
{
case VT_EMPTY:
SetObjectReference( pObj,
- NULL,
- GetAppDomain() );
+ NULL );
break;
case VT_I4:
case VT_INT:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I4)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I4)) );
*(LONG*)((*pObj)->GetData()) = V_I4(pOle);
break;
case VT_BYREF|VT_I4:
case VT_BYREF|VT_INT:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I4)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I4)) );
*(LONG*)((*pObj)->GetData()) = *(V_I4REF(pOle));
break;
case VT_UI4:
case VT_UINT:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U4)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U4)) );
*(ULONG*)((*pObj)->GetData()) = V_UI4(pOle);
break;
case VT_BYREF|VT_UI4:
case VT_BYREF|VT_UINT:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U4)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U4)) );
*(ULONG*)((*pObj)->GetData()) = *(V_UI4REF(pOle));
break;
case VT_I2:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I2)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I2)) );
(*(SHORT*)((*pObj)->GetData())) = V_I2(pOle);
break;
case VT_BYREF|VT_I2:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I2)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I2)) );
*(SHORT*)((*pObj)->GetData()) = *(V_I2REF(pOle));
break;
case VT_UI2:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U2)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U2)) );
*(USHORT*)((*pObj)->GetData()) = V_UI2(pOle);
break;
case VT_BYREF|VT_UI2:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U2)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U2)) );
*(USHORT*)((*pObj)->GetData()) = *(V_UI2REF(pOle));
break;
case VT_I1:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I1)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I1)) );
*(CHAR*)((*pObj)->GetData()) = V_I1(pOle);
break;
case VT_BYREF|VT_I1:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I1)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_I1)) );
*(CHAR*)((*pObj)->GetData()) = *(V_I1REF(pOle));
break;
case VT_UI1:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U1)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U1)) );
*(BYTE*)((*pObj)->GetData()) = V_UI1(pOle);
break;
case VT_BYREF|VT_UI1:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U1)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_U1)) );
*(BYTE*)((*pObj)->GetData()) = *(V_UI1REF(pOle));
break;
case VT_R4:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R4)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R4)) );
*(FLOAT*)((*pObj)->GetData()) = V_R4(pOle);
break;
case VT_BYREF|VT_R4:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R4)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R4)) );
*(FLOAT*)((*pObj)->GetData()) = *(V_R4REF(pOle));
break;
case VT_R8:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R8)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R8)) );
*(DOUBLE*)((*pObj)->GetData()) = V_R8(pOle);
break;
case VT_BYREF|VT_R8:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R8)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_R8)) );
*(DOUBLE*)((*pObj)->GetData()) = *(V_R8REF(pOle));
break;
case VT_BOOL:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_BOOLEAN)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_BOOLEAN)) );
*(VARIANT_BOOL*)((*pObj)->GetData()) = V_BOOL(pOle) ? 1 : 0;
break;
case VT_BYREF|VT_BOOL:
SetObjectReference( pObj,
- AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_BOOLEAN)),
- GetAppDomain() );
+ AllocateObject(MscorlibBinder::GetElementType(ELEMENT_TYPE_BOOLEAN)) );
*(VARIANT_BOOL*)((*pObj)->GetData()) = *(V_BOOLREF(pOle)) ? 1 : 0;
break;
@@ -3219,8 +3200,7 @@ void OleVariant::MarshalObjectForOleVariant(const VARIANT * pOle, OBJECTREF * co
OleVariant::MarshalComVariantForOleVariant((VARIANT*)pOle, &managedVariant);
ARG_SLOT args[] = { PtrToArgSlot(&managedVariant) };
SetObjectReference( pObj,
- convertVariantToObject.Call_RetOBJECTREF(args),
- GetAppDomain() );
+ convertVariantToObject.Call_RetOBJECTREF(args) );
}
GCPROTECT_END_VARIANTDATA();
}
@@ -3910,8 +3890,6 @@ void OleVariant::MarshalVariantArrayOleToCom(void *oleArray, BASEARRAYREF *pComA
BASEARRAYREF unprotectedArray = *pComArray;
OBJECTREF *pCom = (OBJECTREF *) unprotectedArray->GetDataPtr();
- AppDomain *pDomain = unprotectedArray->GetAppDomain();
-
OBJECTREF TmpObj = NULL;
GCPROTECT_BEGIN(TmpObj)
{
@@ -3929,7 +3907,7 @@ void OleVariant::MarshalVariantArrayOleToCom(void *oleArray, BASEARRAYREF *pComA
unprotectedArray = *pComArray;
pCom = (OBJECTREF *) (unprotectedArray->GetAddress() + currentOffset);
}
- SetObjectReference(pCom++, TmpObj, pDomain);
+ SetObjectReference(pCom++, TmpObj);
}
}
GCPROTECT_END();
@@ -4895,7 +4873,6 @@ BASEARRAYREF OleVariant::ExtractWrappedObjectsFromArray(BASEARRAYREF *pArray)
GCPROTECT_BEGIN(DestArray)
{
SIZE_T NumComponents = (*pArray)->GetNumComponents();
- AppDomain *pDomain = DestArray->GetAppDomain();
if (hndWrapperType == TypeHandle(MscorlibBinder::GetClass(CLASS__DISPATCH_WRAPPER)))
{
@@ -4903,7 +4880,7 @@ BASEARRAYREF OleVariant::ExtractWrappedObjectsFromArray(BASEARRAYREF *pArray)
DISPATCHWRAPPEROBJECTREF *pSrcEnd = pSrc + NumComponents;
OBJECTREF *pDest = (OBJECTREF *)DestArray->GetDataPtr();
for (; pSrc < pSrcEnd; pSrc++, pDest++)
- SetObjectReference(pDest, (*pSrc) != NULL ? (*pSrc)->GetWrappedObject() : NULL, pDomain);
+ SetObjectReference(pDest, (*pSrc) != NULL ? (*pSrc)->GetWrappedObject() : NULL);
}
else if (hndWrapperType == TypeHandle(MscorlibBinder::GetClass(CLASS__UNKNOWN_WRAPPER)))
{
@@ -4911,7 +4888,7 @@ BASEARRAYREF OleVariant::ExtractWrappedObjectsFromArray(BASEARRAYREF *pArray)
UNKNOWNWRAPPEROBJECTREF *pSrcEnd = pSrc + NumComponents;
OBJECTREF *pDest = (OBJECTREF *)DestArray->GetDataPtr();
for (; pSrc < pSrcEnd; pSrc++, pDest++)
- SetObjectReference(pDest, (*pSrc) != NULL ? (*pSrc)->GetWrappedObject() : NULL, pDomain);
+ SetObjectReference(pDest, (*pSrc) != NULL ? (*pSrc)->GetWrappedObject() : NULL);
}
else if (hndWrapperType == TypeHandle(MscorlibBinder::GetClass(CLASS__ERROR_WRAPPER)))
{
@@ -4940,7 +4917,7 @@ BASEARRAYREF OleVariant::ExtractWrappedObjectsFromArray(BASEARRAYREF *pArray)
BSTRWRAPPEROBJECTREF *pSrcEnd = pSrc + NumComponents;
OBJECTREF *pDest = (OBJECTREF *)DestArray->GetDataPtr();
for (; pSrc < pSrcEnd; pSrc++, pDest++)
- SetObjectReference(pDest, (*pSrc) != NULL ? (*pSrc)->GetWrappedObject() : NULL, pDomain);
+ SetObjectReference(pDest, (*pSrc) != NULL ? (*pSrc)->GetWrappedObject() : NULL);
}
else
{
@@ -5071,7 +5048,7 @@ void OleVariant::AllocateEmptyStringForBSTR(BSTR bstr, STRINGREF *pStringObj)
// Check to see if the BSTR has trailing odd byte.
BOOL bHasTrailByte = ((length%sizeof(WCHAR)) != 0);
length = length / sizeof(WCHAR);
- SetObjectReference((OBJECTREF*)pStringObj, (OBJECTREF)StringObject::NewString(length, bHasTrailByte), GetAppDomain());
+ SetObjectReference((OBJECTREF*)pStringObj, (OBJECTREF)StringObject::NewString(length, bHasTrailByte));
}
void OleVariant::ConvertContentsBSTRToString(BSTR bstr, STRINGREF *pStringObj)