Optimize parameters handling to do much less allocation
[mono.git] / mcs / class / corlib / System.Diagnostics / DebuggableAttribute.cs
index 5f88b85111e0a201f415a733cf453d6c45028f09..1c05373daaac4088535018a8030f37bf1f279bf9 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using System.Runtime.InteropServices;
+
 namespace System.Diagnostics {
        
        [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Module)]
+       [ComVisible (true)]
        public sealed class DebuggableAttribute : System.Attribute {
 
                private bool JITTrackingEnabledFlag;
                private bool JITOptimizerDisabledFlag;
-#if NET_2_0
                [Flags]
+               [ComVisible (true)]
                public enum DebuggingModes {
                        // Fields
                        None = 0,
@@ -50,7 +53,10 @@ namespace System.Diagnostics {
                }
 
                private DebuggingModes debuggingModes = DebuggingModes.None;
-#endif
+
+               public DebuggingModes DebuggingFlags {
+                       get { return debuggingModes; }
+               }
 
                // Public Instance Constructors
                public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled)
@@ -58,24 +64,19 @@ namespace System.Diagnostics {
                        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; } }