Author: martin
Date: 2005-04-30 03:41:13 -0400 (Sat, 30 Apr 2005)
New Revision: 43813

Modified:
   trunk/mcs/gmcs/ChangeLog
   trunk/mcs/gmcs/attribute.cs
Log:
2005-04-30  Martin Baulig  <[EMAIL PROTECTED]>

        * attribute.cs (Attribute.CheckSecurityActionValidity): Correctly
        handle the .NET 2.x security attributes.



Modified: trunk/mcs/gmcs/ChangeLog
===================================================================
--- trunk/mcs/gmcs/ChangeLog    2005-04-30 06:46:14 UTC (rev 43812)
+++ trunk/mcs/gmcs/ChangeLog    2005-04-30 07:41:13 UTC (rev 43813)
@@ -1,5 +1,10 @@
 2005-04-30  Martin Baulig  <[EMAIL PROTECTED]>
 
+       * attribute.cs (Attribute.CheckSecurityActionValidity): Correctly
+       handle the .NET 2.x security attributes.
+
+2005-04-30  Martin Baulig  <[EMAIL PROTECTED]>
+
        * typemanager.cs
        (TypeManager.ExpandInterfaces): Don't add things twice.
 

Modified: trunk/mcs/gmcs/attribute.cs
===================================================================
--- trunk/mcs/gmcs/attribute.cs 2005-04-30 06:46:14 UTC (rev 43812)
+++ trunk/mcs/gmcs/attribute.cs 2005-04-30 07:41:13 UTC (rev 43813)
@@ -796,19 +796,32 @@
                /// </summary>
                public bool CheckSecurityActionValidity (bool for_assembly)
                {
-                       SecurityAction action  = GetSecurityActionValue ();
+                       SecurityAction action = GetSecurityActionValue ();
 
-                       if ((action == SecurityAction.RequestMinimum || action 
== SecurityAction.RequestOptional || action == SecurityAction.RequestRefuse) && 
for_assembly)
-                               return true;
+                       switch (action) {
+                       case SecurityAction.Demand:
+                       case SecurityAction.Assert:
+                       case SecurityAction.Deny:
+                       case SecurityAction.PermitOnly:
+                       case SecurityAction.LinkDemand:
+                       case SecurityAction.InheritanceDemand:
+                       case SecurityAction.LinkDemandChoice:
+                       case SecurityAction.InheritanceDemandChoice:
+                       case SecurityAction.DemandChoice:
+                               if (!for_assembly)
+                                       return true;
+                               break;
 
-                       if (!for_assembly) {
-                               if (action < SecurityAction.Demand || action > 
SecurityAction.InheritanceDemand) {
-                                       Error_AttributeEmitError 
("SecurityAction is out of range");
-                                       return false;
-                               }
+                       case SecurityAction.RequestMinimum:
+                       case SecurityAction.RequestOptional:
+                       case SecurityAction.RequestRefuse:
+                               if (for_assembly)
+                                       return true;
+                               break;
 
-                               if ((action != SecurityAction.RequestMinimum && 
action != SecurityAction.RequestOptional && action != 
SecurityAction.RequestRefuse) && !for_assembly)
-                                       return true;
+                       default:
+                               Error_AttributeEmitError ("SecurityAction is 
out of range X");
+                               return false;
                        }
 
                        Error_AttributeEmitError (String.Concat 
("SecurityAction '", action, "' is not valid for this declaration"));

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to