public TargetType ReadGenericClass(TargetMemoryAccess memory, TargetAddress address,
bool handle_nullable)
{
MetadataHelper.GenericClassInfo info = MetadataHelper.GetGenericClass (memory, address);
if (info == null)
return null;
TargetType[] args = new TargetType [info.TypeArguments.Length];
for (int i = 0; i < info.TypeArguments.Length; i++) {
args [i] = ReadType (memory, info.TypeArguments [i]);
if (args [i] == null)
return null;
}
MonoClassType container = LookupMonoClass (memory, info.ContainerClass)
as MonoClassType;
if (container == null)
return null;
if (handle_nullable && (container.Type.FullName == "System.Nullable`1"))
return new MonoNullableType (args [0]);
return new MonoGenericInstanceType (container, args, info.KlassPtr);
}