System.Security.PermissionListSet.CheckSetDemand C# (CSharp) Method

CheckSetDemand() private method

private CheckSetDemand ( PermissionSet pset, RuntimeMethodHandle rmh ) : bool
pset PermissionSet
rmh RuntimeMethodHandle
return bool
        internal bool CheckSetDemand(PermissionSet pset , RuntimeMethodHandle rmh)
        {
            bool bRet = SecurityRuntime.StackContinue;
            PermissionSet demandSet = pset;
            PermissionSet alteredDemandSet;
            if (m_permSetTriples != null)
            {
                for (int i=0; (i < m_permSetTriples.Count && bRet != SecurityRuntime.StackHalt) ; i++)
                {

                    PermissionSetTriple psTriple = (PermissionSetTriple)m_permSetTriples[i];
                    bRet = psTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh);
                    if (alteredDemandSet != null)
                        demandSet = alteredDemandSet;
                }
            }
            else if (m_firstPermSetTriple != null)
            {
                bRet = m_firstPermSetTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh);
            }

            return SecurityRuntime.StackHalt; //  CS demand check always terminates the stackwalk            
        }