Author: krasnov
Date: 2008-02-18 12:08:00 -0500 (Mon, 18 Feb 2008)
New Revision: 96081

Modified:
   branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/ChangeLog
   branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/Page.cs
Log:
* Page.cs: fixed RegisterRequiresPostBack, performance improvement


Modified: branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/ChangeLog
===================================================================
--- branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/ChangeLog        
2008-02-18 17:03:48 UTC (rev 96080)
+++ branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/ChangeLog        
2008-02-18 17:08:00 UTC (rev 96081)
@@ -1,3 +1,7 @@
+2008-02-18  Vladimir Krasnov  <[EMAIL PROTECTED]>
+
+       * Page.cs: fixed RegisterRequiresPostBack, performance improvement
+
 2008-02-12  Vladimir Krasnov  <[EMAIL PROTECTED]>
 
        * Page.jvm.cs: StateSerializer.readExternal and writeExternal fixed

Modified: branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/Page.cs
===================================================================
--- branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/Page.cs  
2008-02-18 17:03:48 UTC (rev 96080)
+++ branches/mainsoft/gh2.2/mcs/class/System.Web/System.Web.UI/Page.cs  
2008-02-18 17:08:00 UTC (rev 96081)
@@ -1777,10 +1777,10 @@
                if (_requiresPostBack == null)
                        _requiresPostBack = new ArrayList ();
 
-               if (_requiresPostBack.Contains (control.UniqueID))
+               if (_requiresPostBack.Contains (control))
                        return;
 
-               _requiresPostBack.Add (control.UniqueID);
+               _requiresPostBack.Add (control);
        }
 
        [EditorBrowsable (EditorBrowsableState.Advanced)]
@@ -1888,7 +1888,7 @@
 #endif
 
                object viewState = SaveViewStateRecursive ();
-               object reqPostback = (_requiresPostBack != null && 
_requiresPostBack.Count > 0) ? _requiresPostBack : null;
+               object reqPostback = (_requiresPostBack != null && 
_requiresPostBack.Count > 0) ? GetRequiresPostBackIds () : null;
                Pair vsr = null;
 
                if (viewState != null || reqPostback != null)
@@ -1908,6 +1908,14 @@
 
        }
 
+       private ArrayList GetRequiresPostBackIds ()
+       {
+               ArrayList a = new ArrayList (_requiresPostBack.Count);
+               for (int i = 0; i < _requiresPostBack.Count; i++)
+                       a.Add (((Control) _requiresPostBack [i]).UniqueID);
+               return a;
+       }
+
        public virtual void Validate ()
        {
                is_validated = true;

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

Reply via email to