Patch from Ben S. Stahlhood II (bstahlhood@gmail.com)
authorMiguel de Icaza <miguel@gnome.org>
Tue, 1 Feb 2005 23:04:19 +0000 (23:04 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Tue, 1 Feb 2005 23:04:19 +0000 (23:04 -0000)
svn path=/trunk/mcs/; revision=39955

mcs/class/corlib/System.Diagnostics/DebuggableAttribute.cs

index e47548a095e369301f1fe958dc523f20a3735392..5f88b85111e0a201f415a733cf453d6c45028f09 100644 (file)
@@ -1,11 +1,12 @@
-//\r
-// System.Collections.DebuggableAttribute.cs\r
-//\r
-// Author:\r
-//   Nick Drochak II (ndrochak@gol.com)\r
-//\r
-// (C) 2001 Nick Drochak II\r
-//\r
+//
+// System.Collections.DebuggableAttribute.cs
+//
+// Author:
+//   Nick Drochak II (ndrochak@gol.com)
+//   Ben S. Stahlhood II (bstahlhood@gmail.com)
+//
+// (C) 2001 Nick Drochak II
+//
 
 //
 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-\r
-namespace System.Diagnostics {\r
-       \r
-       [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Module)]\r
-       public sealed class DebuggableAttribute : System.Attribute {\r
-\r
-               private bool JITTrackingEnabledFlag;\r
-               private bool JITOptimizerDisabledFlag;\r
-\r
-               // Public Instance Constructors\r
-               public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled) {\r
-                       JITTrackingEnabledFlag = isJITTrackingEnabled;\r
-                       JITOptimizerDisabledFlag = isJITOptimizerDisabled;\r
-               }\r
-               \r
-               // Public Instance Properties\r
-               public bool IsJITTrackingEnabled { get { return JITTrackingEnabledFlag; } }\r
-               \r
-               public bool IsJITOptimizerDisabled { get { return JITOptimizerDisabledFlag; } }\r
-       }\r
-}\r
+
+namespace System.Diagnostics {
+       
+       [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Module)]
+       public sealed class DebuggableAttribute : System.Attribute {
+
+               private bool JITTrackingEnabledFlag;
+               private bool JITOptimizerDisabledFlag;
+#if NET_2_0
+               [Flags]
+               public enum DebuggingModes {
+                       // Fields
+                       None = 0,
+                       Default = 1,
+                       IgnoreSymbolStoreSequencePoints = 2,
+                       EnableEditAndContinue = 4,
+                       DisableOptimizations = 256
+               }
+
+               private DebuggingModes debuggingModes = DebuggingModes.None;
+#endif
+
+               // Public Instance Constructors
+               public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled)
+               {
+                       JITTrackingEnabledFlag = isJITTrackingEnabled;
+                       JITOptimizerDisabledFlag = isJITOptimizerDisabled;
+
+#if NET_2_0
+                       if (isJITTrackingEnabled) 
+                               debuggingModes |= DebuggingModes.Default;
+                       
+                       if (isJITOptimizerDisabled) 
+                               debuggingModes |= DebuggingModes.DisableOptimizations;
+#endif
+               }
+
+#if NET_2_0
+               public DebuggableAttribute(DebuggingModes modes) 
+               {
+                       debuggingModes = modes;
+                       JITTrackingEnabledFlag = (debuggingModes & DebuggingModes.Default) != 0;
+                       JITOptimizerDisabledFlag = (debuggingModes & DebuggingModes.DisableOptimizations) != 0;
+               }
+#endif
+               
+               
+               // Public Instance Properties
+               public bool IsJITTrackingEnabled { get { return JITTrackingEnabledFlag; } }
+               
+               public bool IsJITOptimizerDisabled { get { return JITOptimizerDisabledFlag; } }
+       }
+}