protected virtual unsafe void DefineGenericTypeParameter(TypeBuilder typeBuilder, GenericTypeParameterBuilder paramBuilder, BCSYM_GenericParam* pParam)
{
paramBuilder.SetGenericParameterAttributes(GetGenericParameterAttributes(pParam));
List<Type> list = new List<Type>();
for (BCSYM_GenericConstraint* constraintPtr = *((BCSYM_GenericConstraint**) (pParam + 0x54)); constraintPtr != null; constraintPtr = *((BCSYM_GenericConstraint**) (constraintPtr + 8)))
{
if (((byte) (*(((byte*) constraintPtr)) == 0x26)) != 0)
{
BCSYM* pSymbol = BCSYM.DigThroughNamedType(*((BCSYM* modopt(IsConst) modopt(IsConst)*) (constraintPtr + 12)));
Type item = this.GetType(typeBuilder, pSymbol);
if (BCSYM.IsInterface(pSymbol))
{
list.Add(item);
}
else
{
paramBuilder.SetBaseTypeConstraint(item);
}
}
}
if (list.Count > 0)
{
paramBuilder.SetInterfaceConstraints(list.ToArray());
}
}