Index: ui/gfx/geometry/size_f.h |
diff --git a/ui/gfx/geometry/size_f.h b/ui/gfx/geometry/size_f.h |
index 2ee2f51973c635e96ad0236067d5ae9fedb88482..609d780bfefb2b9b44d2805d6e15778485ed97cc 100644 |
--- a/ui/gfx/geometry/size_f.h |
+++ b/ui/gfx/geometry/size_f.h |
@@ -18,17 +18,17 @@ namespace gfx { |
// A floating version of gfx::Size. |
class GFX_EXPORT SizeF { |
public: |
- SizeF() : width_(0.f), height_(0.f) {} |
- SizeF(float width, float height) |
- : width_(fmaxf(0, width)), height_(fmaxf(0, height)) {} |
- ~SizeF() {} |
+ constexpr SizeF() : width_(0.f), height_(0.f) {} |
+ constexpr SizeF(float width, float height) |
+ : width_((width < 0 || std::isnan(width)) ? 0 : width), |
+ height_((height < 0 || std::isnan(height)) ? 0 : height) {} |
- explicit SizeF(const Size& size) |
+ constexpr explicit SizeF(const Size& size) |
: SizeF(static_cast<float>(size.width()), |
static_cast<float>(size.height())) {} |
- float width() const { return width_; } |
- float height() const { return height_; } |
+ constexpr float width() const { return width_; } |
+ constexpr float height() const { return height_; } |
void set_width(float width) { width_ = fmaxf(0, width); } |
void set_height(float height) { height_ = fmaxf(0, height); } |