From cb0191217aaf5de1fd4a9a935cb4f9bf14e784ce Mon Sep 17 00:00:00 2001 From: "Olli.Pettay%helsinki.fi" Date: Mon, 18 Sep 2006 17:44:00 +0000 Subject: [PATCH] Bug 351879, crash calling refresh() during a refresh, r=aaronr+doronr git-svn-id: svn://10.0.0.236/trunk@211928 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xforms/nsXFormsModelElement.cpp | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/mozilla/extensions/xforms/nsXFormsModelElement.cpp b/mozilla/extensions/xforms/nsXFormsModelElement.cpp index d266ca216df..a93f4406c07 100644 --- a/mozilla/extensions/xforms/nsXFormsModelElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsModelElement.cpp @@ -571,19 +571,17 @@ nsPostRefresh::~nsPostRefresh() // container->refresh below could ask for ContainerNeedsPostRefresh which // will add an item to the sContainerPostRefreshList if sRefreshing > 0. // So keeping this under sRefreshing-- will avoid an infinite loop. - if (sContainerPostRefreshList) { - while (sContainerPostRefreshList->Count()) { - PRInt32 last = sContainerPostRefreshList->Count() - 1; - nsIXFormsControl* container = - NS_STATIC_CAST(nsIXFormsControl*, sContainerPostRefreshList->ElementAt(last)); - sContainerPostRefreshList->RemoveElementAt(last); - if (container) { - container->Refresh(); - } + while (sContainerPostRefreshList && sContainerPostRefreshList->Count()) { + PRInt32 last = sContainerPostRefreshList->Count() - 1; + nsIXFormsControl* container = + NS_STATIC_CAST(nsIXFormsControl*, sContainerPostRefreshList->ElementAt(last)); + sContainerPostRefreshList->RemoveElementAt(last); + if (container) { + container->Refresh(); } - delete sContainerPostRefreshList; - sContainerPostRefreshList = nsnull; } + delete sContainerPostRefreshList; + sContainerPostRefreshList = nsnull; } const nsVoidArray*