|
|
Created:
4 years ago by alancutter (OOO until 2018) Modified:
3 years, 11 months ago CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-css, blink-reviews-style_chromium.org, chromium-reviews, dglazkov+blink, rwlbuis Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionPrevent floating point overflow when using calc() with large values
BUG=676286
Committed: https://crrev.com/66a95ed79bb18584d8ea1b045e43a96ec4e80dfc
Cr-Commit-Position: refs/heads/master@{#441339}
Patch Set 1 #Patch Set 2 : Bigger numbers #
Total comments: 2
Patch Set 3 : Revert changes to LengthFunctions.cpp #Patch Set 4 : Remove layout affected test case #
Messages
Total messages: 33 (18 generated)
The CQ bit was checked by alancutter@chromium.org to run a CQ dry run
alancutter@chromium.org changed reviewers: + sashab@chromium.org
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
Well done, LGTM!! How do we build in this clampTo<> functionality without having to put it all over the place?
On 2017/01/02 at 23:42:57, sashab wrote: > Well done, LGTM!! How do we build in this clampTo<> functionality without having to put it all over the place? The issue is with the math operators (+-*/) having overflow behaviour. To automatically clampTo<> the results you could create a wrapper class that redefines the +-*/ operators as desired.
The CQ bit was checked by alancutter@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
alancutter@chromium.org changed reviewers: + eae@chromium.org
+eae for platform/LengthFunctions.cpp.
LGTM w/caveat https://codereview.chromium.org/2597103002/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/LengthFunctions.cpp (right): https://codereview.chromium.org/2597103002/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/LengthFunctions.cpp:41: return clampTo<float>(maximumValue * length.percent() / 100.0f); clampTo is significantly more expensive than a static_cast. You might wan to consider using saturation arithmetic instead. At the very least please be aware of the overhead and monitor our perf tests and numbers carefully.
https://codereview.chromium.org/2597103002/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/LengthFunctions.cpp (right): https://codereview.chromium.org/2597103002/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/LengthFunctions.cpp:41: return clampTo<float>(maximumValue * length.percent() / 100.0f); On 2017/01/03 at 04:37:30, eae wrote: > clampTo is significantly more expensive than a static_cast. You might wan to consider using saturation arithmetic instead. At the very least please be aware of the overhead and monitor our perf tests and numbers carefully. The performance impact of this is a bit scary actually. The undefined behaviour fuzzer never highlighted this file so I might just leave it alone and stick with just fixing calc() code instead.
The CQ bit was checked by alancutter@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from sashab@chromium.org, eae@chromium.org Link to the patchset: https://codereview.chromium.org/2597103002/#ps40001 (title: "Revert changes to LengthFunctions.cpp")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by alancutter@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from sashab@chromium.org, eae@chromium.org Link to the patchset: https://codereview.chromium.org/2597103002/#ps60001 (title: "Remove layout affected test case")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by alancutter@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 60001, "attempt_start_ts": 1483513557440810, "parent_rev": "bbaa5bd7c5957318f1441e4c1cf4cb0ccb27f1e9", "commit_rev": "5bc70fa14d5a408437469e1b874ce5894f57e58d"}
Message was sent while issue was closed.
Description was changed from ========== Prevent floating point overflow when using calc() with large values BUG=676286 ========== to ========== Prevent floating point overflow when using calc() with large values BUG=676286 Review-Url: https://codereview.chromium.org/2597103002 ==========
Message was sent while issue was closed.
Committed patchset #4 (id:60001)
Message was sent while issue was closed.
Description was changed from ========== Prevent floating point overflow when using calc() with large values BUG=676286 Review-Url: https://codereview.chromium.org/2597103002 ========== to ========== Prevent floating point overflow when using calc() with large values BUG=676286 Committed: https://crrev.com/66a95ed79bb18584d8ea1b045e43a96ec4e80dfc Cr-Commit-Position: refs/heads/master@{#441339} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/66a95ed79bb18584d8ea1b045e43a96ec4e80dfc Cr-Commit-Position: refs/heads/master@{#441339} |