diff options
author | David Wrighton <davidwr@microsoft.com> | 2019-04-03 15:54:05 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-03 15:54:05 -0700 |
commit | d3e39bc2f81e3dbf9e4b96347f62b49d8700336c (patch) | |
tree | 78b72499a0f38e9dbf6ae4d6d24c77779ac543dc /src/vm/olevariant.cpp | |
parent | a7dd6192530dec1d424c359233a1b92f559fa92a (diff) | |
download | coreclr-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.cpp | 81 |
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) |