Fix comments
[mono.git] / mcs / class / corlib / System.Threading / CompressedStack.cs
index 08343945b03c5860000a4de8140a78b8743d0e6d..0e79ce5779791fa138e808e87634484624a5f8af 100644 (file)
@@ -37,12 +37,8 @@ using System.Security.Permissions;
 
 namespace System.Threading {
 
-#if NET_2_0
        [Serializable]
        public sealed class CompressedStack : ISerializable {
-#else
-       public class CompressedStack {
-#endif
                private ArrayList _list;
 
                internal CompressedStack (int length)
@@ -57,26 +53,23 @@ namespace System.Threading {
                                _list = (ArrayList) cs._list.Clone ();
                }
 
-#if NET_2_0
                [ComVisibleAttribute (false)]
-               public
-#else
-               internal
-#endif
-               CompressedStack CreateCopy ()
+               public CompressedStack CreateCopy ()
                {
                        return new CompressedStack (this);
                }
 
-#if NET_2_0
-               public
-#else
-               internal
-#endif
-               static CompressedStack Capture ()
+               public static CompressedStack Capture ()
                {
                        CompressedStack cs = new CompressedStack (0);
                        cs._list = SecurityFrame.GetStack (1);
+
+                       // include any current CompressedStack inside the new Capture
+                       CompressedStack currentCs = Thread.CurrentThread.GetCompressedStack ();
+                       if (currentCs != null) {
+                               for (int i=0; i < currentCs._list.Count; i++)
+                                       cs._list.Add (currentCs._list [i]);
+                       }
                        return cs;
                }
 
@@ -103,7 +96,6 @@ namespace System.Threading {
                        return cs;
                }
 
-#if NET_2_0
                [MonoTODO ("incomplete")]
                [ReflectionPermission (SecurityAction.Demand, MemberAccess = true)]
                public void GetObjectData (SerializationInfo info, StreamingContext context)
@@ -130,9 +122,8 @@ namespace System.Threading {
                                        t.SetCompressedStack (original);
                        }
                }
-#endif
-               // internal stuff
 
+               // internal stuff
                internal bool Equals (CompressedStack cs)
                {
                        if (IsEmpty ())