internal static PermissionListSet CreateCompressedState(IntPtr unmanagedDCS, out bool bHaltConstruction)
{
PermissionSet set2;
PermissionSet set3;
PermissionListSet set = new PermissionListSet();
PermissionSetTriple currentTriple = new PermissionSetTriple();
int descCount = DomainCompressedStack.GetDescCount(unmanagedDCS);
bHaltConstruction = false;
for (int i = 0; (i < descCount) && !bHaltConstruction; i++)
{
FrameSecurityDescriptor descriptor;
Assembly assembly;
if (DomainCompressedStack.GetDescriptorInfo(unmanagedDCS, i, out set2, out set3, out assembly, out descriptor))
{
bHaltConstruction = set.Update(currentTriple, descriptor);
}
else
{
set.Update(currentTriple, set2, set3);
}
}
if (!bHaltConstruction && !DomainCompressedStack.IgnoreDomain(unmanagedDCS))
{
DomainCompressedStack.GetDomainPermissionSets(unmanagedDCS, out set2, out set3);
set.Update(currentTriple, set2, set3);
}
set.Terminate(currentTriple);
return(set);
}