Avoid implicit conversion to CGRect and CGSize

Desktop / Chromium - Daniel Bratell [opera.com] - 11 September 2017 12:02 EDT

Implicit conversion to CGRect and CGSize can create extra conversion paths (if known) between various rect/size types. Such extra conversion paths can make the compiler fail to compile because of ambiguity.

Since conversions between CGRect and CGSize and internal types are lossy both ways (float <-> int), it's best to avoid them anyway except when they are really needed so this patch makes the cast operators explicit.

Short term, the implicit conversions break jumbo builds since the compiler there knows "too much" and gets confused.

Bug: 761475 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I7b29fba20d4dd836015a594081f4e6256bd42732 Reviewed-on: https://chromium-review.googlesource.com/657645

769d0e3 Avoid implicit conversion to CGRect and CGSize.
third_party/WebKit/Source/core/paint/ThemePainterMac.mm | 15 ++++++++-------
third_party/WebKit/Source/platform/geometry/IntRect.h | 2 +-
third_party/WebKit/Source/platform/geometry/IntSize.h | 4 ++--
third_party/WebKit/Source/platform/mac/ThemeMac.mm | 3 ++-
.../WebKit/Source/platform/scroll/ScrollbarThemeMac.mm | 6 +++---
5 files changed, 16 insertions(+), 14 deletions(-)

Upstream: git.chromium.org

  • Share