RESOLVED FIXED 104472
[Windows]ASSERTION failed in Windows: css3/css3-modsel-33.html
https://bugs.webkit.org/show_bug.cgi?id=104472
Summary [Windows]ASSERTION failed in Windows: css3/css3-modsel-33.html
huangxueqing
Reported 2012-12-09 02:12:46 PST
In WebFrameLoaderClient::dispatchDidLayout, |milestones| maybe was |DidFirstLayout & DidFirstVisuallyNonEmptyLayout|, which will call webView->frameLoadDelegatePrivate(&frameLoadDelegatePrivate) twice, we should rest |frameLoadDelegatePrivate| after the first one, otherwise |T** operator&()| will hit |ASSERT(!m_ptr)|.
Attachments
patch (1.67 KB, patch)
2012-12-09 03:02 PST, huangxueqing
bfulgham: review-
bfulgham: commit-queue-
patch (1.97 KB, patch)
2012-12-10 20:13 PST, huangxueqing
no flags
huangxueqing
Comment 1 2012-12-09 03:02:02 PST
Brent Fulgham
Comment 2 2012-12-10 11:12:44 PST
Comment on attachment 178402 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=178402&action=review I think this looks like a good change, but I wonder if things might be clearer if we didn't reuse the variable for two different purposes. > Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:429 > + frameLoadDelegatePrivate = 0; This seems like a good change, but would it be clearer if we used separate COMPtrs for the two possible cases? Maybe we should have each one declared within the scope of the DidFirstlayout and DidFirstVisuallyNonEmpty Layout?
Brent Fulgham
Comment 3 2012-12-10 11:13:19 PST
Tim, what do you think about making these two separate variables, rather than reusing the same COMPtr?
Tim Horton
Comment 4 2012-12-10 11:22:16 PST
Comment on attachment 178402 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=178402&action=review >> Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:429 >> + frameLoadDelegatePrivate = 0; > > This seems like a good change, but would it be clearer if we used separate COMPtrs for the two possible cases? Maybe we should have each one declared within the scope of the DidFirstlayout and DidFirstVisuallyNonEmpty Layout? I agree, Brent's plan (two separate locals inside the if blocks) is clearer.
Brent Fulgham
Comment 5 2012-12-10 11:40:34 PST
Comment on attachment 178402 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=178402&action=review Thanks for taking the time to post this fix. I think it looks good, but we would like you to move the COMPtr declaration inside the two "if" cases. This will make it clearer that the COMPtr is not needed elsewhere. For this reason, r-, but please update the patch and I'll approve it. >>> Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:429 >>> + frameLoadDelegatePrivate = 0; >> >> This seems like a good change, but would it be clearer if we used separate COMPtrs for the two possible cases? Maybe we should have each one declared within the scope of the DidFirstlayout and DidFirstVisuallyNonEmpty Layout? > > I agree, Brent's plan (two separate locals inside the if blocks) is clearer. Okay -- please move the scope of "COMPtr<IWebFrameLoadDelegatePrivate> frameLoadDelegatePrivate" to be enclosed inside the two cases.
huangxueqing
Comment 6 2012-12-10 20:13:23 PST
huangxueqing
Comment 7 2012-12-10 20:19:44 PST
(In reply to comment #5) > (From update of attachment 178402 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=178402&action=review > > Thanks for taking the time to post this fix. I think it looks good, but we would like you to move the COMPtr declaration inside the two "if" cases. This will make it clearer that the COMPtr is not needed elsewhere. > For this reason, r-, but please update the patch and I'll approve it. > > >>> Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:429 > >>> + frameLoadDelegatePrivate = 0; > >> > >> This seems like a good change, but would it be clearer if we used separate COMPtrs for the two possible cases? Maybe we should have each one declared within the scope of the DidFirstlayout and DidFirstVisuallyNonEmpty Layout? > > > > I agree, Brent's plan (two separate locals inside the if blocks) is clearer. > > Okay -- please move the scope of "COMPtr<IWebFrameLoadDelegatePrivate> frameLoadDelegatePrivate" to be enclosed inside the two cases. Done, it seems more reasonable, thanks for review.
WebKit Review Bot
Comment 8 2012-12-10 20:59:55 PST
Comment on attachment 178695 [details] patch Rejecting attachment 178695 [details] from commit-queue. New failing tests: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html Full output: http://queues.webkit.org/results/15260214
WebKit Review Bot
Comment 9 2012-12-10 21:18:48 PST
Comment on attachment 178695 [details] patch Clearing flags on attachment: 178695 Committed r137246: <http://trac.webkit.org/changeset/137246>
WebKit Review Bot
Comment 10 2012-12-10 21:18:52 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.