Merge pull request #5198 from BrzVlad/fix-binprot-stats
[mono.git] / mcs / class / corlib / System.Security.Permissions / KeyContainerPermission.cs
index f944f36c2280ca8a6836b5789ff03eab6117db03..33b80fb385051f8881ae6631e69199843c4e5b67 100644 (file)
@@ -1,5 +1,5 @@
 //
-// System.Security.Permissions.KeyContainerPermission class
+// System.Security.Permissions.KeyContainerPermission.cs
 //
 // Author
 //     Sebastien Pouliot  <sebastien@ximian.com>
@@ -26,8 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
-
 using System.Globalization;
 using System.Runtime.InteropServices;
 
@@ -60,6 +58,7 @@ namespace System.Security.Permissions {
                {
                        SetFlags (flags);
                        if (accessList != null) {
+                               _accessEntries = new KeyContainerPermissionAccessEntryCollection ();
                                foreach (KeyContainerPermissionAccessEntry kcpae in accessList) {
                                        _accessEntries.Add (kcpae);
                                }
@@ -89,20 +88,20 @@ namespace System.Security.Permissions {
                }
 
                [MonoTODO ("(2.0) missing support for AccessEntries")]
-               public override void FromXml (SecurityElement esd
+               public override void FromXml (SecurityElement securityElement
                {
                        // General validation in CodeAccessPermission
-                       CheckSecurityElement (esd, "esd", version, version);
+                       CheckSecurityElement (securityElement, "securityElement", version, version);
                        // Note: we do not (yet) care about the return value 
                        // as we only accept version 1 (min/max values)
 
-                       if (IsUnrestricted (esd)) {
+                       if (IsUnrestricted (securityElement)) {
                                _flags = KeyContainerPermissionFlags.AllFlags;
                        }
                        else {
                                // ???
                                _flags = (KeyContainerPermissionFlags) Enum.Parse (
-                                       typeof (KeyContainerPermissionFlags), esd.Attribute ("Flags"));
+                                       typeof (KeyContainerPermissionFlags), securityElement.Attribute ("Flags"));
                        }
                }
 
@@ -171,7 +170,7 @@ namespace System.Security.Permissions {
 
                private void SetFlags (KeyContainerPermissionFlags flags)
                {
-                       if ((flags & KeyContainerPermissionFlags.AllFlags) != 0) {
+                       if ((flags & KeyContainerPermissionFlags.AllFlags) == 0) {
                                string msg = String.Format (Locale.GetText ("Invalid enum {0}"), flags);
                                throw new ArgumentException (msg, "KeyContainerPermissionFlags");
                        }
@@ -193,4 +192,3 @@ namespace System.Security.Permissions {
        }
 }
 
-#endif