[Webkit-unassigned] [Bug 61606] New: Logic error in WebCore/Page/SpatialNavigation.cpp::areRectsPartiallyAligned
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu May 26 22:31:42 PDT 2011
https://bugs.webkit.org/show_bug.cgi?id=61606
Summary: Logic error in
WebCore/Page/SpatialNavigation.cpp::areRectsPartiallyA
ligned
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: New Bugs
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: rsleevi at chromium.org
This was reported downstream in Chromium by a user running a static analyzer against the Chromium sources. The original bug report is http://code.google.com/p/chromium/issues/detail?id=83873#c2 , with the specific bug split into http://code.google.com/p/chromium/issues/detail?id=84140
The original report is:
V501 There are identical sub-expressions '(bStart >= aStart && bStart <= aEnd)' to the left and to the right of the '||' operator. webcore_remaining spatialnavigation.cpp 236
// This method checks if |start| and |dest| have a partial intersection, either
// horizontally or vertically.
// * a = Current focused node's rect.
// * b = Focus candidate node's rect.
static bool areRectsPartiallyAligned(FocusDirection direction, const IntRect& a, const IntRect& b)
{
int aStart = start(direction, a);
int bStart = start(direction, b);
int bMiddle = middle(direction, b);
int aEnd = end(direction, a);
int bEnd = end(direction, b);
// Picture of the partially aligned logic:
//
// Horizontal Vertical
// ********************************
// * _ * _ _ _ *
// * |_| * |_|_|_| *
// * |_|.... _ * . . *
// * |_| |_| * . . *
// * |_|....|_| * ._._ _ *
// * |_| * |_|_|_| *
// * |_| * *
// * * *
// ********************************
//
// ... and variants of the above cases.
return ((bStart >= aStart && bStart <= aEnd)
|| (bStart >= aStart && bStart <= aEnd)
|| (bEnd >= aStart && bEnd <= aEnd)
|| (bMiddle >= aStart && bMiddle <= aEnd)
|| (bEnd >= aStart && bEnd <= aEnd));
}
--
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