Rewrite NaN checks in terms of SkScalarIsNaN()
We are trying to replace Skia's NaN checker with our own in Mozilla,
so it would be nice to have to patch a single place by making sure
these NaN checks used SkScalarIsNaN().
BUG=skia:
Review URL: https://codereview.chromium.org/809443002
diff --git a/include/core/SkPoint.h b/include/core/SkPoint.h
index 323c824..4a97391 100644
--- a/include/core/SkPoint.h
+++ b/include/core/SkPoint.h
@@ -357,11 +357,11 @@
accum *= fY;
// accum is either NaN or it is finite (zero).
- SkASSERT(0 == accum || !(accum == accum));
+ SkASSERT(0 == accum || SkScalarIsNaN(accum));
// value==value will be true iff value is not NaN
// TODO: is it faster to say !accum or accum==accum?
- return accum == accum;
+ return !SkScalarIsNaN(accum);
}
/**
diff --git a/include/core/SkRect.h b/include/core/SkRect.h
index 394e45d..0038c7c 100644
--- a/include/core/SkRect.h
+++ b/include/core/SkRect.h
@@ -455,11 +455,11 @@
accum *= fBottom;
// accum is either NaN or it is finite (zero).
- SkASSERT(0 == accum || !(accum == accum));
+ SkASSERT(0 == accum || SkScalarIsNaN(accum));
// value==value will be true iff value is not NaN
// TODO: is it faster to say !accum or accum==accum?
- return accum == accum;
+ return !SkScalarIsNaN(accum);
}
SkScalar x() const { return fLeft; }
diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h
index e0490e2..94c3ce1 100644
--- a/include/core/SkScalar.h
+++ b/include/core/SkScalar.h
@@ -127,7 +127,7 @@
SkScalar prod = x * 0;
// At this point, prod will either be NaN or 0
// Therefore we can return (prod == prod) or (0 == prod).
- return prod == prod;
+ return !SkScalarIsNaN(prod);
}
/**