[Webkit-unassigned] [Bug 36901] RVCT generates incorrect code for method Range::operator== when compiler optimizations are enabled

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Apr 4 23:10:22 PDT 2010


--- Comment #9 from Daniel Bates <dbates at webkit.org>  2010-04-04 23:10:21 PST ---
(In reply to comment #7)
> I forgot to comment on the manual test case in this bug.
> There are plenty of automated test cases that exercise finding text, so I think
> this could be automated.
> LayoutTests/text/find-case-folding.html for example.

We cannot test this with DRT (at least not via
document.execCommand("FindString", ...)) as WebCore::Frame::findString is not
called with startInSelection := true (*). The call flow has the form: ... =>
WebCore::executeFindString => WebCore::Frame::findString. In particular,
startInSelection is hardcoded to false in method WebCore::executeFindString,

In contrast, when you show the find banner in Safari and perform a search,
WebCore::Frame::findString is called with startInSelection := true. The call
flow has the form: -[WebView(WebPendingPublic)
searchFor:direction:caseSensitive:wrap:startInSelection:] =>
searchFor:direction:caseSensitive:wrap:startInSelection:] =>
WebCore::Frame::findString. Notice the value of startInSelection is passed in
as a parameter. I cannot see the code of the calling functions of 
searchFor:direction:caseSensitive:wrap:startInSelection:] (**) to determine how
this value is set since the calling functions are outside of WebKit. I am not
too familiar with EditorCommand, but we may be able to use similar logic as in
(**)  to set the value of startInSelection in WebCore::executeFindString.
Alternatively, we may consider allowing a user to explicitly specify this

Therefore, a manual test is needed to reproduce the crash/verify the fix.

(*) Notice, the crash occurs when we evaluate the second conjunct of the
if-condition on line 1389 of Frame.cpp (i.e.
"*VisibleSelection(resultRange.get()).toNormalizedRange() ==
*selection.toNormalizedRange()"), and by the definition of logical AND this
occurs when the first conjunct is true (i.e. startInSelection := true).

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list