@@ -1308,8 +1308,28 @@ int ISOSDacInterface.GetMethodDescPtrFromIP(ClrDataAddress ip, ClrDataAddress* p
13081308 return hr ;
13091309 }
13101310
1311- int ISOSDacInterface . GetMethodDescTransparencyData ( ClrDataAddress methodDesc , void * data )
1312- => _legacyImpl is not null ? _legacyImpl . GetMethodDescTransparencyData ( methodDesc , data ) : HResults . E_NOTIMPL ;
1311+ int ISOSDacInterface . GetMethodDescTransparencyData ( ClrDataAddress methodDesc , DacpMethodDescTransparencyData * data )
1312+ {
1313+ int hr = HResults . S_OK ;
1314+ try
1315+ {
1316+ if ( methodDesc == 0 || data is null )
1317+ throw new ArgumentException ( ) ;
1318+
1319+ // Called for validation
1320+ _target . Contracts . RuntimeTypeSystem . GetMethodDescHandle ( methodDesc . ToTargetPointer ( _target ) ) ;
1321+
1322+ // Zero memory
1323+ * data = default ;
1324+ }
1325+ catch ( System . Exception ex )
1326+ {
1327+ hr = ex . HResult ;
1328+ }
1329+
1330+ return hr ;
1331+ }
1332+
13131333 int ISOSDacInterface . GetMethodTableData ( ClrDataAddress mt , DacpMethodTableData * data )
13141334 {
13151335 if ( mt == 0 || data == null )
@@ -1522,8 +1542,29 @@ int ISOSDacInterface.GetMethodTableName(ClrDataAddress mt, uint count, char* mtN
15221542
15231543 int ISOSDacInterface . GetMethodTableSlot ( ClrDataAddress mt , uint slot , ClrDataAddress * value )
15241544 => _legacyImpl is not null ? _legacyImpl . GetMethodTableSlot ( mt , slot , value ) : HResults . E_NOTIMPL ;
1525- int ISOSDacInterface . GetMethodTableTransparencyData ( ClrDataAddress mt , void * data )
1526- => _legacyImpl is not null ? _legacyImpl . GetMethodTableTransparencyData ( mt , data ) : HResults . E_NOTIMPL ;
1545+
1546+ int ISOSDacInterface . GetMethodTableTransparencyData ( ClrDataAddress mt , DacpMethodTableTransparencyData * data )
1547+ {
1548+ int hr = HResults . S_OK ;
1549+ try
1550+ {
1551+ if ( mt == 0 || data is null )
1552+ throw new ArgumentException ( ) ;
1553+
1554+ // Called for validation
1555+ _target . Contracts . RuntimeTypeSystem . GetTypeHandle ( mt . ToTargetPointer ( _target ) ) ;
1556+
1557+ // Zero memory
1558+ * data = default ;
1559+ }
1560+ catch ( System . Exception ex )
1561+ {
1562+ hr = ex . HResult ;
1563+ }
1564+
1565+ return hr ;
1566+ }
1567+
15271568 int ISOSDacInterface . GetModule ( ClrDataAddress addr , out IXCLRDataModule ? mod )
15281569 {
15291570 mod = default ;
0 commit comments