Skip to content

Commit 0f545d4

Browse files
authored
[cDAC] LegacyHandle on IEnum should be nuint (#128711)
1 parent 760c770 commit 0f545d4

5 files changed

Lines changed: 15 additions & 15 deletions

File tree

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataMethodDefinition.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ int IXCLRDataMethodDefinition.StartEnumInstances(IXCLRDataAppDomain? appDomain,
122122
if (methodDescAddr != TargetPointer.Null)
123123
{
124124
SOSDacImpl.EnumMethodInstances emi = new(_target, methodDescAddr, TargetPointer.Null);
125-
emi.LegacyHandle = legacyHandle;
125+
emi.LegacyHandle = (nuint)legacyHandle;
126126

127127
hr = emi.Start();
128128
if (hr == HResults.S_OK)
@@ -181,7 +181,7 @@ int IXCLRDataMethodDefinition.EnumInstance(ulong* handle, DacComNullableByRef<IX
181181
DacComNullableByRef<IXCLRDataMethodInstance> legacyMethodOut = new(isNullRef: false);
182182
hrLocal = _legacyImpl.EnumInstance(&legacyHandle, legacyMethodOut);
183183
legacyMethod = legacyMethodOut.Interface;
184-
emi.LegacyHandle = legacyHandle;
184+
emi.LegacyHandle = (nuint)legacyHandle;
185185
}
186186

187187
try
@@ -236,7 +236,7 @@ int IXCLRDataMethodDefinition.EndEnumInstances(ulong handle)
236236
((IEnum<MethodDescHandle>)emi).Dispose();
237237
gcHandle.Free();
238238

239-
if (_legacyImpl is not null && emi.LegacyHandle != TargetPointer.Null)
239+
if (_legacyImpl is not null && emi.LegacyHandle != 0)
240240
{
241241
int hrLocal = _legacyImpl.EndEnumInstances(emi.LegacyHandle);
242242
if (hrLocal < 0)

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataModule.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,9 @@ internal sealed class EnumMethodDefinitions : IEnum<uint>
128128
private TypeDefinitionHandle? _typeHandle;
129129
private string? _methodName;
130130
public IEnumerator<uint> Enumerator { get; set; } = Enumerable.Empty<uint>().GetEnumerator();
131-
public TargetPointer LegacyHandle { get; set; } = TargetPointer.Null;
131+
public nuint LegacyHandle { get; set; } = 0;
132132

133-
public EnumMethodDefinitions(MetadataReader reader, uint flags, TargetPointer legacyHandle)
133+
public EnumMethodDefinitions(MetadataReader reader, uint flags, nuint legacyHandle)
134134
{
135135
_reader = reader;
136136
_flags = flags;
@@ -300,7 +300,7 @@ int IXCLRDataModule.StartEnumMethodDefinitionsByName(char* name, uint flags, ulo
300300
Contracts.ModuleHandle moduleHandle = loader.GetModuleHandleFromModulePtr(_address);
301301
MetadataReader reader = _target.Contracts.EcmaMetadata.GetMetadata(moduleHandle)!;
302302

303-
EnumMethodDefinitions emd = new(reader, flags, handleLocal);
303+
EnumMethodDefinitions emd = new(reader, flags, (nuint)handleLocal);
304304
emd.Start(fullName);
305305
*handle = (ulong)((IEnum<uint>)emd).GetHandle();
306306
}
@@ -346,7 +346,7 @@ int IXCLRDataModule.EnumMethodDefinitionByName(ulong* handle, DacComNullableByRe
346346
DacComNullableByRef<IXCLRDataMethodDefinition> legacyMethodOut = new(isNullRef: false);
347347
hrLocal = _legacyModule.EnumMethodDefinitionByName(&legacyHandle, legacyMethodOut);
348348
legacyMethod = legacyMethodOut.Interface;
349-
emd.LegacyHandle = legacyHandle;
349+
emd.LegacyHandle = (nuint)legacyHandle;
350350
}
351351

352352
try
@@ -393,7 +393,7 @@ int IXCLRDataModule.EndEnumMethodDefinitionsByName(ulong handle)
393393
return ex.HResult;
394394
}
395395

396-
if (_legacyModule != null && emd.LegacyHandle != TargetPointer.Null)
396+
if (_legacyModule != null && emd.LegacyHandle != 0)
397397
{
398398
int hrLocal = _legacyModule.EndEnumMethodDefinitionsByName(emd.LegacyHandle);
399399
if (hrLocal < 0)

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/IEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Microsoft.Diagnostics.DataContractReader.Legacy;
77
internal interface IEnum<T>
88
{
99
IEnumerator<T> Enumerator { get; }
10-
TargetPointer LegacyHandle { get; }
10+
nuint LegacyHandle { get; }
1111
void Dispose() => Enumerator.Dispose();
1212
long GetHandle()
1313
{

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ internal sealed class EnumMethodInstances : IEnum<MethodDescHandle>
255255
private readonly IRuntimeTypeSystem _rts;
256256
private readonly ICodeVersions _cv;
257257
public IEnumerator<MethodDescHandle> Enumerator { get; set; } = Enumerable.Empty<MethodDescHandle>().GetEnumerator();
258-
public TargetPointer LegacyHandle { get; set; } = TargetPointer.Null;
258+
public nuint LegacyHandle { get; set; } = 0;
259259

260260
public EnumMethodInstances(Target target, TargetPointer methodDesc, TargetPointer appDomain)
261261
{
@@ -469,7 +469,7 @@ int IXCLRDataProcess.StartEnumMethodInstancesByAddress(ClrDataAddress address, I
469469
eman.GetMethodDesc(cbh) is TargetPointer methodDesc)
470470
{
471471
EnumMethodInstances emi = new(_target, methodDesc, TargetPointer.Null);
472-
emi.LegacyHandle = handleLocal;
472+
emi.LegacyHandle = (nuint)handleLocal;
473473

474474
hr = emi.Start();
475475
if (hr == HResults.S_OK)
@@ -523,7 +523,7 @@ int IXCLRDataProcess.EnumMethodInstanceByAddress(ulong* handle, DacComNullableBy
523523
DacComNullableByRef<IXCLRDataMethodInstance> legacyMethodOut = new(isNullRef: false);
524524
hrLocal = _legacyProcess.EnumMethodInstanceByAddress(&legacyHandle, legacyMethodOut);
525525
legacyMethod = legacyMethodOut.Interface;
526-
emi.LegacyHandle = legacyHandle;
526+
emi.LegacyHandle = (nuint)legacyHandle;
527527
}
528528

529529
try
@@ -582,7 +582,7 @@ int IXCLRDataProcess.EndEnumMethodInstancesByAddress(ulong handle)
582582
if (gcHandle.Target is not EnumMethodInstances emi) return HResults.E_INVALIDARG;
583583
gcHandle.Free();
584584

585-
if (_legacyProcess != null && emi.LegacyHandle != TargetPointer.Null)
585+
if (_legacyProcess != null && emi.LegacyHandle != 0)
586586
{
587587
int hrLocal = _legacyProcess.EndEnumMethodInstancesByAddress(emi.LegacyHandle);
588588
if (hrLocal < 0)

src/native/managed/cdac/tests/EnumMethodDefinitionsTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public void EnumMethodsByName_ReturnsExpectedCount(string fullName, uint flags,
175175
fixed (byte* ptr = s_metadataBytes)
176176
{
177177
var reader = new MetadataReader(ptr, s_metadataBytes.Length);
178-
var emd = new ClrDataModule.EnumMethodDefinitions(reader, flags, TargetPointer.Null);
178+
var emd = new ClrDataModule.EnumMethodDefinitions(reader, flags, 0);
179179
emd.Start(fullName);
180180

181181
int count = 0;
@@ -200,7 +200,7 @@ public void EnumMethodsByName_ThrowsForUnresolvableInput(string fullName)
200200
fixed (byte* ptr = s_metadataBytes)
201201
{
202202
var reader = new MetadataReader(ptr, s_metadataBytes.Length);
203-
var emd = new ClrDataModule.EnumMethodDefinitions(reader, 0, TargetPointer.Null);
203+
var emd = new ClrDataModule.EnumMethodDefinitions(reader, 0, 0);
204204

205205
Assert.Throws<ArgumentException>(() => emd.Start(fullName));
206206
}

0 commit comments

Comments
 (0)