-
commit-queue@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=92376 Patch by Dominik Röttsches <dominik.rottsches@intel.com> on 2012-07-30 Reviewed by Tony Chang. .: Added manual test to reliably reproduce assertion failure which is solved by this patch. * ManualTests/harfbuzz-mouse-selection-crash.html: Added. Source/WebCore: Previously, the if condition in offsetForPosition gating the call to characterIndexForXPosition was comparing a different value than what was actually used as the argument to calling it. In some cases, this can lead to a minuscule difference when comparing the two floats - enough to trigger the assertion. To resolve this, the accuracy of the index calculation is improved by changing the types from int to floats and rephrasing the if condition to be exactly the same as what is checked for in the assertion. Manual test ManualTests/harfbuzz-mouse-selection-crash.html added which reliably reproduces the assertion failure before this change. * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition): Types changed to float. (WebCore::HarfBuzzShaper::offsetForPosition): Types changed to float, if condition rephrased. * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: (HarfBuzzRun): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1f75637a