Skip to content

Commit a3e0275

Browse files
authored
[cDAC] Ensure mt created (#129114)
Before checking the dict of MTs when not coming directly from a constructed TypeHandle, ensure that the MethodTable is created.
1 parent 1547c9a commit a3e0275

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/RuntimeTypeSystem_1.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,7 +1345,7 @@ private bool RequiresInstArgMethodTable(MethodDesc methodDesc)
13451345
if (methodDesc.IsStatic)
13461346
return true;
13471347

1348-
MethodTable mt = _methodTables[methodDesc.MethodTable];
1348+
MethodTable mt = GetOrCreateMethodTable(methodDesc);
13491349
if (mt.Flags.IsValueType)
13501350
return true;
13511351

@@ -1385,7 +1385,7 @@ private bool IsSharedByGenericInstantiations(MethodDesc methodDesc)
13851385
}
13861386

13871387
// Check class-level sharing: canonical MethodTable with generic instantiation
1388-
MethodTable mt = _methodTables[methodDesc.MethodTable];
1388+
MethodTable mt = GetOrCreateMethodTable(methodDesc);
13891389
return mt.IsCanonMT && mt.Flags.HasInstantiation;
13901390
}
13911391

@@ -1397,7 +1397,7 @@ private bool IsAbstract(MethodDesc methodDesc)
13971397
if (EcmaMetadataUtils.GetRowId(token) == 0)
13981398
return false;
13991399

1400-
TargetPointer modulePtr = _methodTables[methodDesc.MethodTable].Module;
1400+
TargetPointer modulePtr = GetOrCreateMethodTable(methodDesc).Module;
14011401
ModuleHandle moduleHandle = _target.Contracts.Loader.GetModuleHandleFromModulePtr(modulePtr);
14021402
MetadataReader? mdReader = _target.Contracts.EcmaMetadata.GetMetadata(moduleHandle);
14031403
if (mdReader is null)

0 commit comments

Comments
 (0)