Skip to content

Commit ff57232

Browse files
authored
Delete dead/unreachable code related to remoting (dotnet#20880)
1 parent 3464b60 commit ff57232

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+204
-2090
lines changed

src/debug/daccess/daccess.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -5858,9 +5858,6 @@ ClrDataAccess::RawGetMethodName(
58585858
#ifdef HAS_THISPTR_RETBUF_PRECODE
58595859
maxPrecodeSize = max(maxPrecodeSize, sizeof(ThisPtrRetBufPrecode));
58605860
#endif
5861-
#ifdef HAS_REMOTING_PRECODE
5862-
maxPrecodeSize = max(maxPrecodeSize, sizeof(RemotingPrecode));
5863-
#endif
58645861

58655862
for (SIZE_T i = 0; i < maxPrecodeSize / PRECODE_ALIGNMENT; i++)
58665863
{

src/debug/daccess/nidump.cpp

+5-16
Original file line numberDiff line numberDiff line change
@@ -3519,10 +3519,6 @@ size_t NativeImageDumper::TranslateSymbol(IXCLRDisassemblySupport *dis,
35193519
case PRECODE_NDIRECT_IMPORT:
35203520
precodeName = "NDirectImportPrecode"; break;
35213521
#endif // HAS_NDIRECT_IMPORT_PRECODE
3522-
#ifdef HAS_REMOTING_PRECODE
3523-
case PRECODE_REMOTING:
3524-
precodeName = "RemotingPrecode"; break;
3525-
#endif // HAS_REMOTING_PRECODE
35263522
#ifdef HAS_FIXUP_PRECODE
35273523
case PRECODE_FIXUP:
35283524
precodeName = "FixupPrecode"; break;
@@ -5552,17 +5548,17 @@ NativeImageDumper::EnumMnemonics s_MTFlagsHigh[] =
55525548

55535549
MTFLAG_CATEGORY_ENTRY(Class),
55545550
MTFLAG_CATEGORY_ENTRY(Unused_1),
5555-
MTFLAG_CATEGORY_ENTRY(MarshalByRef),
5556-
MTFLAG_CATEGORY_ENTRY(Contextful),
5551+
MTFLAG_CATEGORY_ENTRY(Unused_2),
5552+
MTFLAG_CATEGORY_ENTRY(Unused_3),
55575553
MTFLAG_CATEGORY_ENTRY(ValueType),
55585554
MTFLAG_CATEGORY_ENTRY(Nullable),
55595555
MTFLAG_CATEGORY_ENTRY(PrimitiveValueType),
55605556
MTFLAG_CATEGORY_ENTRY(TruePrimitive),
55615557

55625558
MTFLAG_CATEGORY_ENTRY(Interface),
5563-
MTFLAG_CATEGORY_ENTRY(Unused_2),
5564-
MTFLAG_CATEGORY_ENTRY(TransparentProxy),
5565-
MTFLAG_CATEGORY_ENTRY(AsyncPin),
5559+
MTFLAG_CATEGORY_ENTRY(Unused_4),
5560+
MTFLAG_CATEGORY_ENTRY(Unused_5),
5561+
MTFLAG_CATEGORY_ENTRY(Unused_6),
55665562

55675563
MTFLAG_CATEGORY_ENTRY_WITH_MASK(Array, Array_Mask),
55685564
MTFLAG_CATEGORY_ENTRY_WITH_MASK(IfArrayThenSzArray, IfArrayThenSzArray),
@@ -5626,10 +5622,7 @@ NativeImageDumper::EnumMnemonics s_WriteableMTFlags[] =
56265622
NativeImageDumper::EnumMnemonics(MethodTableWriteableData::enum_flag_ ## x,\
56275623
W(#x))
56285624

5629-
WMTFLAG_ENTRY(RemotingConfigChecked),
5630-
WMTFLAG_ENTRY(RequiresManagedActivation),
56315625
WMTFLAG_ENTRY(Unrestored),
5632-
WMTFLAG_ENTRY(CriticalTypePrepared),
56335626
WMTFLAG_ENTRY(HasApproxParent),
56345627
WMTFLAG_ENTRY(UnrestoredTypeKey),
56355628
WMTFLAG_ENTRY(IsNotFullyLoaded),
@@ -7566,10 +7559,6 @@ void NativeImageDumper::DumpPrecode( PTR_Precode precode, PTR_Module module )
75667559
case PRECODE_NDIRECT_IMPORT:
75677560
DISPLAY_PRECODE(NDirectImportPrecode); break;
75687561
#endif
7569-
#ifdef HAS_REMOTING_PRECODE
7570-
case PRECODE_REMOTING:
7571-
DISPLAY_PRECODE(RemotingPrecode); break;
7572-
#endif
75737562
#ifdef HAS_FIXUP_PRECODE
75747563
case PRECODE_FIXUP:
75757564
IF_OPT_AND(PRECODES, METHODDESCS)

src/debug/ee/funceval.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -2630,7 +2630,6 @@ void PackArgumentArray(DebuggerEval *pDE,
26302630
MethodTable *pMT = objPtr->GetMethodTable();
26312631
// <TODO> Do this check in the following cases as well... </TODO>
26322632
if (!pMT->IsArray()
2633-
&& !pMT->IsTransparentProxy()
26342633
&& !pDE->m_md->IsSharedByGenericInstantiations())
26352634
{
26362635
TypeHandle thFrom = TypeHandle(pMT);

src/inc/MSCOREE.IDL

-30
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,6 @@ cpp_quote("EXTERN_GUID(CLSID_ComCallUnmarshal, 0x3F281000,0xE95A,0x11d2,0x88,0x6
4040
cpp_quote("EXTERN_GUID(CLSID_ComCallUnmarshalV4, 0x45fb4600,0xe6e8,0x4928,0xb2,0x5e,0x50,0x47,0x6f,0xf7,0x94,0x25);")
4141
#endif // FEATURE_COMINTEROP
4242

43-
44-
#ifdef FEATURE_COMINTEROP
45-
// IID IManagedObject : uuid(C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4)
46-
cpp_quote("EXTERN_GUID(IID_IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b, 0x5a, 0x00, 0xa0, 0xc9, 0xb7, 0xc9, 0xc4);")
47-
#endif // FEATURE_COMINTEROP
48-
49-
5043
#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING
5144
// IID ICLRAppDomainResourceMonitor: uuid(C62DE18C-2E23-4AEA-8423-B40C1FC59EAE)
5245
cpp_quote("EXTERN_GUID(IID_ICLRAppDomainResourceMonitor, 0XC62DE18C, 0X2E23, 0X4AEA, 0X84, 0X23, 0XB4, 0X0C, 0X1F, 0XC5, 0X9E, 0XAE);")
@@ -992,29 +985,6 @@ library mscoree
992985
cpp_quote("#define CCW_PTR int *")
993986
#endif // WIN64
994987

995-
#ifdef FEATURE_COMINTEROP
996-
//*****************************************************************************
997-
// Interface for controlling a managed object
998-
//*****************************************************************************
999-
[
1000-
object,
1001-
oleautomation,
1002-
uuid(C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4),
1003-
helpstring("Managed Object Interface"),
1004-
pointer_default(unique),
1005-
proxy
1006-
]
1007-
interface IManagedObject : IUnknown
1008-
{
1009-
// helper to serialize the object and marshal it to the client
1010-
HRESULT GetSerializedBuffer( [out] BSTR *pBSTR);
1011-
1012-
// Object identity includes, process guid, appdomain id, ccw
1013-
HRESULT GetObjectIdentity([out] BSTR* pBSTRGUID, [out] int* AppDomainID, [out] CCW_PTR pCCW);
1014-
};
1015-
#endif // FEATURE_COMINTEROP
1016-
1017-
1018988
#ifdef FEATURE_COMINTEROP
1019989
//*****************************************************************************
1020990
// IMarshal implementation for 1.0, 1.1, and 2.0 COM callable wrappers

src/inc/clrconfigvalues.h

-4
Original file line numberDiff line numberDiff line change
@@ -722,10 +722,6 @@ RETAIL_CONFIG_STRING_INFO(INTERNAL_EventNameFilter, W("EventNameFilter"), "")
722722
/// Interop
723723
///
724724
CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_ExposeExceptionsInCOM, W("ExposeExceptionsInCOM"), "")
725-
RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ComInsteadOfManagedRemoting, W("PreferComInsteadOfManagedRemoting"), 0, "When communicating with a cross app domain CCW, use COM instead of managed remoting.")
726-
RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_legacyComHierarchyVisibility, W("legacyComHierarchyVisibility"), "")
727-
RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_legacyComVTableLayout, W("legacyComVTableLayout"), "")
728-
RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_newComVTableLayout, W("newComVTableLayout"), "")
729725
RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_PInvokeInline, W("PInvokeInline"), "", CLRConfig::REGUTIL_default)
730726
RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_InteropValidatePinnedObjects, W("InteropValidatePinnedObjects"), 0, "After returning from a managed-to-unmanaged interop call, validate GC heap around objects pinned by IL stubs.")
731727
RETAIL_CONFIG_DWORD_INFO(EXTERNAL_InteropLogArguments, W("InteropLogArguments"), 0, "Log all pinned arguments passed to an interop call")

src/vm/amd64/cgenamd64.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -863,7 +863,7 @@ EXTERN_C PCODE VirtualMethodFixupWorker(TransitionBlock * pTransitionBlock, CORC
863863
_ASSERTE(pThisPtr != NULL);
864864
VALIDATEOBJECT(pThisPtr);
865865

866-
MethodTable * pMT = pThisPtr->GetTrueMethodTable();
866+
MethodTable * pMT = pThisPtr->GetMethodTable();
867867

868868
WORD slotNumber = pThunk->slotNum;
869869
_ASSERTE(slotNumber != (WORD)-1);

src/vm/amd64/cgencpu.h

-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ EXTERN_C void FastCallFinalizeWorker(Object *obj, PCODE funcPtr);
5454
#define USE_INDIRECT_CODEHEADER // use CodeHeader, RealCodeHeader construct
5555

5656
#define HAS_NDIRECT_IMPORT_PRECODE 1
57-
//#define HAS_REMOTING_PRECODE 1 // TODO: Implement
5857
#define HAS_FIXUP_PRECODE 1
5958
#define HAS_FIXUP_PRECODE_CHUNKS 1
6059
#define FIXUP_PRECODE_PREALLOCATE_DYNAMIC_METHOD_JUMP_STUBS 1

src/vm/appdomain.cpp

-63
Original file line numberDiff line numberDiff line change
@@ -1974,68 +1974,6 @@ MethodTable* AppDomain::GetLicenseInteropHelperMethodTable()
19741974
}
19751975
return m_pLicenseInteropHelperMT;
19761976
}
1977-
1978-
COMorRemotingFlag AppDomain::GetComOrRemotingFlag()
1979-
{
1980-
CONTRACTL
1981-
{
1982-
NOTHROW;
1983-
GC_TRIGGERS;
1984-
MODE_ANY;
1985-
}
1986-
CONTRACTL_END;
1987-
1988-
// 0. check if the value is already been set
1989-
if (m_COMorRemotingFlag != COMorRemoting_NotInitialized)
1990-
return m_COMorRemotingFlag;
1991-
1992-
// 1. check whether the process is AppX
1993-
if (AppX::IsAppXProcess())
1994-
{
1995-
// do not use Remoting in AppX
1996-
m_COMorRemotingFlag = COMorRemoting_COM;
1997-
return m_COMorRemotingFlag;
1998-
}
1999-
2000-
// 2. check the xml file
2001-
m_COMorRemotingFlag = GetPreferComInsteadOfManagedRemotingFromConfigFile();
2002-
if (m_COMorRemotingFlag != COMorRemoting_NotInitialized)
2003-
{
2004-
return m_COMorRemotingFlag;
2005-
}
2006-
2007-
// 3. check the global setting
2008-
if (NULL != g_pConfig && g_pConfig->ComInsteadOfManagedRemoting())
2009-
{
2010-
m_COMorRemotingFlag = COMorRemoting_COM;
2011-
}
2012-
else
2013-
{
2014-
m_COMorRemotingFlag = COMorRemoting_Remoting;
2015-
}
2016-
2017-
return m_COMorRemotingFlag;
2018-
}
2019-
2020-
BOOL AppDomain::GetPreferComInsteadOfManagedRemoting()
2021-
{
2022-
WRAPPER_NO_CONTRACT;
2023-
2024-
return (GetComOrRemotingFlag() == COMorRemoting_COM);
2025-
}
2026-
2027-
COMorRemotingFlag AppDomain::GetPreferComInsteadOfManagedRemotingFromConfigFile()
2028-
{
2029-
CONTRACTL
2030-
{
2031-
NOTHROW;
2032-
GC_TRIGGERS;
2033-
MODE_ANY;
2034-
}
2035-
CONTRACTL_END;
2036-
2037-
return COMorRemoting_COM;
2038-
}
20391977
#endif // FEATURE_COMINTEROP
20401978

20411979
#endif // CROSSGEN_COMPILE
@@ -3881,7 +3819,6 @@ AppDomain::AppDomain()
38813819
m_pRCWCache = NULL;
38823820
m_pRCWRefCache = NULL;
38833821
m_pLicenseInteropHelperMT = NULL;
3884-
m_COMorRemotingFlag = COMorRemoting_NotInitialized;
38853822
memset(m_rpCLRTypes, 0, sizeof(m_rpCLRTypes));
38863823
#endif // FEATURE_COMINTEROP
38873824

src/vm/appdomain.hpp

-14
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,7 @@ extern INT64 g_PauseTime; // Total time in millisecond the CLR has been paused
7575
#ifdef FEATURE_COMINTEROP
7676
class ComCallWrapperCache;
7777
struct SimpleComCallWrapper;
78-
7978
class RCWRefCache;
80-
81-
// This enum is used to specify whether user want COM or remoting
82-
enum COMorRemotingFlag {
83-
COMorRemoting_NotInitialized = 0,
84-
COMorRemoting_COM = 1, // COM will be used both cross-domain and cross-runtime
85-
COMorRemoting_Remoting = 2, // Remoting will be used cross-domain; cross-runtime will use Remoting only if it looks like it's expected (default)
86-
COMorRemoting_LegacyMode = 3 // Remoting will be used both cross-domain and cross-runtime
87-
};
88-
8979
#endif // FEATURE_COMINTEROP
9080

9181
#ifdef _MSC_VER
@@ -2575,8 +2565,6 @@ class AppDomain : public BaseDomain
25752565
void RemoveWinRTFactoryObjects(LPVOID pCtxCookie);
25762566

25772567
MethodTable *LoadCOMClass(GUID clsid, BOOL bLoadRecord = FALSE, BOOL* pfAssemblyInReg = NULL);
2578-
COMorRemotingFlag GetComOrRemotingFlag();
2579-
BOOL GetPreferComInsteadOfManagedRemoting();
25802568
OBJECTREF GetMissingObject(); // DispatchInfo will call function to retrieve the Missing.Value object.
25812569
#endif // FEATURE_COMINTEROP
25822570

@@ -3020,7 +3008,6 @@ class AppDomain : public BaseDomain
30203008
EEClassFactoryInfoHashTable *m_pRefClassFactHash; // Hash table that maps a class factory info to a COM comp.
30213009
#ifdef FEATURE_COMINTEROP
30223010
DispIDCache *m_pRefDispIDCache;
3023-
COMorRemotingFlag m_COMorRemotingFlag;
30243011
OBJECTHANDLE m_hndMissing; //Handle points to Missing.Value Object which is used for [Optional] arg scenario during IDispatch CCW Call
30253012

30263013
MethodTable* m_rpCLRTypes[WinMDAdapter::RedirectedTypeIndex_Count];
@@ -3176,7 +3163,6 @@ class AppDomain : public BaseDomain
31763163
EEClassFactoryInfoHashTable* SetupClassFactHash();
31773164
#ifdef FEATURE_COMINTEROP
31783165
DispIDCache* SetupRefDispIDCache();
3179-
COMorRemotingFlag GetPreferComInsteadOfManagedRemotingFromConfigFile();
31803166
#endif // FEATURE_COMINTEROP
31813167

31823168
void InitializeDefaultDomainManager ();

src/vm/arm/cgencpu.h

-58
Original file line numberDiff line numberDiff line change
@@ -1333,64 +1333,6 @@ struct ThisPtrRetBufPrecode {
13331333
typedef DPTR(ThisPtrRetBufPrecode) PTR_ThisPtrRetBufPrecode;
13341334

13351335

1336-
#ifdef HAS_REMOTING_PRECODE
1337-
1338-
// Precode with embedded remoting interceptor
1339-
struct RemotingPrecode {
1340-
1341-
static const int Type = 0x02;
1342-
1343-
// push {r1,lr}
1344-
// ldr r1, [pc, #16] ; =m_pPrecodeRemotingThunk
1345-
// blx r1
1346-
// pop {r1,lr}
1347-
// ldr pc, [pc, #12] ; =m_pLocalTarget
1348-
// nop ; padding for alignment
1349-
// dcd m_pMethodDesc
1350-
// dcd m_pPrecodeRemotingThunk
1351-
// dcd m_pLocalTarget
1352-
WORD m_rgCode[8];
1353-
TADDR m_pMethodDesc;
1354-
TADDR m_pPrecodeRemotingThunk;
1355-
TADDR m_pLocalTarget;
1356-
1357-
void Init(MethodDesc* pMD, LoaderAllocator *pLoaderAllocator = NULL);
1358-
1359-
TADDR GetMethodDesc()
1360-
{
1361-
LIMITED_METHOD_DAC_CONTRACT;
1362-
return m_pMethodDesc;
1363-
}
1364-
1365-
PCODE GetTarget()
1366-
{
1367-
LIMITED_METHOD_DAC_CONTRACT;
1368-
return m_pLocalTarget;
1369-
}
1370-
1371-
BOOL SetTargetInterlocked(TADDR target, TADDR expected)
1372-
{
1373-
CONTRACTL
1374-
{
1375-
THROWS;
1376-
GC_TRIGGERS;
1377-
}
1378-
CONTRACTL_END;
1379-
1380-
EnsureWritableExecutablePages(&m_pLocalTarget);
1381-
return FastInterlockCompareExchange((LONG*)&m_pLocalTarget, (LONG)target, (LONG)expected) == (LONG)expected;
1382-
}
1383-
1384-
#ifdef FEATURE_PREJIT
1385-
void Fixup(DataImage *image, ZapNode *pCodeNode);
1386-
#endif
1387-
};
1388-
typedef DPTR(RemotingPrecode) PTR_RemotingPrecode;
1389-
1390-
EXTERN_C void PrecodeRemotingThunk();
1391-
1392-
#endif // HAS_REMOTING_PRECODE
1393-
13941336
//**********************************************************************
13951337
// Miscellaneous
13961338
//**********************************************************************

src/vm/arm/stubs.cpp

-61
Original file line numberDiff line numberDiff line change
@@ -883,67 +883,6 @@ void ThisPtrRetBufPrecode::Init(MethodDesc* pMD, LoaderAllocator *pLoaderAllocat
883883
}
884884

885885

886-
#ifdef HAS_REMOTING_PRECODE
887-
888-
void RemotingPrecode::Init(MethodDesc* pMD, LoaderAllocator *pLoaderAllocator)
889-
{
890-
WRAPPER_NO_CONTRACT;
891-
892-
int n = 0;
893-
894-
m_rgCode[n++] = 0xb502; // push {r1,lr}
895-
m_rgCode[n++] = 0x4904; // ldr r1, [pc, #16] ; =m_pPrecodeRemotingThunk
896-
m_rgCode[n++] = 0x4788; // blx r1
897-
m_rgCode[n++] = 0xe8bd; // pop {r1,lr}
898-
m_rgCode[n++] = 0x4002;
899-
m_rgCode[n++] = 0xf8df; // ldr pc, [pc, #12] ; =m_pLocalTarget
900-
m_rgCode[n++] = 0xf00c;
901-
m_rgCode[n++] = 0xbf00; // nop ; padding for alignment
902-
903-
_ASSERTE(n == _countof(m_rgCode));
904-
905-
m_pMethodDesc = (TADDR)pMD;
906-
m_pPrecodeRemotingThunk = GetEEFuncEntryPoint(PrecodeRemotingThunk);
907-
m_pLocalTarget = GetPreStubEntryPoint();
908-
}
909-
910-
#ifdef FEATURE_NATIVE_IMAGE_GENERATION
911-
void RemotingPrecode::Fixup(DataImage *image, ZapNode *pCodeNode)
912-
{
913-
WRAPPER_NO_CONTRACT;
914-
915-
if (pCodeNode)
916-
image->FixupFieldToNode(this, offsetof(RemotingPrecode, m_pLocalTarget),
917-
pCodeNode,
918-
THUMB_CODE,
919-
IMAGE_REL_BASED_PTR);
920-
else
921-
image->FixupFieldToNode(this, offsetof(RemotingPrecode, m_pLocalTarget),
922-
image->GetHelperThunk(CORINFO_HELP_EE_PRESTUB),
923-
0,
924-
IMAGE_REL_BASED_PTR);
925-
926-
image->FixupFieldToNode(this, offsetof(RemotingPrecode, m_pPrecodeRemotingThunk),
927-
image->GetHelperThunk(CORINFO_HELP_EE_REMOTING_THUNK),
928-
0,
929-
IMAGE_REL_BASED_PTR);
930-
931-
image->FixupField(this, offsetof(RemotingPrecode, m_pMethodDesc),
932-
(void*)GetMethodDesc(),
933-
0,
934-
IMAGE_REL_BASED_PTR);
935-
}
936-
#endif // FEATURE_NATIVE_IMAGE_GENERATION
937-
938-
void CTPMethodTable::ActivatePrecodeRemotingThunk()
939-
{
940-
// Nothing to do for ARM version of remoting precode (we don't burn the TP MethodTable pointer into
941-
// PrecodeRemotingThunk directly).
942-
}
943-
944-
#endif // HAS_REMOTING_PRECODE
945-
946-
947886
#ifndef CROSSGEN_COMPILE
948887
/*
949888
Rough pseudo-code of interface dispatching:

0 commit comments

Comments
 (0)