aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bench/MathBench.cpp4
-rw-r--r--bench/PathBench.cpp12
-rw-r--r--include/core/SkScalar.h4
-rw-r--r--src/utils/SkCamera.cpp8
-rw-r--r--src/views/animated/SkStaticTextView.cpp18
-rw-r--r--tests/MathTest.cpp6
-rw-r--r--tests/MatrixTest.cpp8
-rw-r--r--tests/RTreeTest.cpp8
8 files changed, 37 insertions, 31 deletions
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
index df3d3a53c2..bdb89cab62 100644
--- a/bench/MathBench.cpp
+++ b/bench/MathBench.cpp
@@ -110,9 +110,9 @@ private:
static inline float SkFastInvSqrt(float x) {
float xhalf = 0.5f*x;
- int i = *(int*)&x;
+ int i = *SkTCast<int*>(&x);
i = 0x5f3759df - (i>>1);
- x = *(float*)&i;
+ x = *SkTCast<float*>(&i);
x = x*(1.5f-xhalf*x*x);
// x = x*(1.5f-xhalf*x*x); // this line takes err from 10^-3 to 10^-6
return x;
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index dd5041d94b..12e456ab06 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -272,13 +272,15 @@ protected:
path->lineTo(fPoints[(fCurrPoint++) & (kNumPoints - 1)]);
break;
case SkPath::kQuad_Verb:
- path->quadTo(fPoints[(fCurrPoint++) & (kNumPoints - 1)],
- fPoints[(fCurrPoint++) & (kNumPoints - 1)]);
+ path->quadTo(fPoints[(fCurrPoint + 0) & (kNumPoints - 1)],
+ fPoints[(fCurrPoint + 1) & (kNumPoints - 1)]);
+ fCurrPoint += 2;
break;
case SkPath::kCubic_Verb:
- path->cubicTo(fPoints[(fCurrPoint++) & (kNumPoints - 1)],
- fPoints[(fCurrPoint++) & (kNumPoints - 1)],
- fPoints[(fCurrPoint++) & (kNumPoints - 1)]);
+ path->cubicTo(fPoints[(fCurrPoint + 0) & (kNumPoints - 1)],
+ fPoints[(fCurrPoint + 1) & (kNumPoints - 1)],
+ fPoints[(fCurrPoint + 2) & (kNumPoints - 1)]);
+ fCurrPoint += 3;
break;
case SkPath::kClose_Verb:
path->close();
diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h
index 4c3bdb277f..f357e6a05f 100644
--- a/include/core/SkScalar.h
+++ b/include/core/SkScalar.h
@@ -40,7 +40,7 @@
#define SK_ScalarHalf (0.5f)
/** SK_ScalarInfinity is defined to be infinity as an SkScalar
*/
- #define SK_ScalarInfinity (*(const float*)&gIEEEInfinity)
+ #define SK_ScalarInfinity (*SkTCast<const float*>(&gIEEEInfinity))
/** SK_ScalarMax is defined to be the largest value representable as an SkScalar
*/
#define SK_ScalarMax (3.402823466e+38f)
@@ -49,7 +49,7 @@
#define SK_ScalarMin (-SK_ScalarMax)
/** SK_ScalarNaN is defined to be 'Not a Number' as an SkScalar
*/
- #define SK_ScalarNaN (*(const float*)(const void*)&gIEEENotANumber)
+ #define SK_ScalarNaN (*SkTCast<const float*>(&gIEEENotANumber))
/** SkScalarIsNaN(n) returns true if argument is not a number
*/
static inline bool SkScalarIsNaN(float x) { return x != x; }
diff --git a/src/utils/SkCamera.cpp b/src/utils/SkCamera.cpp
index 7d6963ce9a..11e10f6dc2 100644
--- a/src/utils/SkCamera.cpp
+++ b/src/utils/SkCamera.cpp
@@ -269,13 +269,13 @@ void SkCamera3D::doUpdate() const {
fAxis.normalize(&axis);
{
- SkScalar dot = SkUnit3D::Dot(*(const SkUnit3D*)(const void*)&fZenith, axis);
+ SkScalar dot = SkUnit3D::Dot(*SkTCast<const SkUnit3D*>(&fZenith), axis);
zenith.fX = fZenith.fX - SkUnitScalarMul(dot, axis.fX);
zenith.fY = fZenith.fY - SkUnitScalarMul(dot, axis.fY);
zenith.fZ = fZenith.fZ - SkUnitScalarMul(dot, axis.fZ);
- (void)((SkPoint3D*)(void*)&zenith)->normalize(&zenith);
+ SkTCast<SkPoint3D*>(&zenith)->normalize(&zenith);
}
SkUnit3D::Cross(axis, zenith, &cross);
@@ -313,8 +313,8 @@ void SkCamera3D::patchToMatrix(const SkPatch3D& quilt, SkMatrix* matrix) const {
diff.fY = quilt.fOrigin.fY - fLocation.fY;
diff.fZ = quilt.fOrigin.fZ - fLocation.fZ;
- dot = SkUnit3D::Dot(*(const SkUnit3D*)(const void*)&diff,
- *(const SkUnit3D*)(((const SkScalar*)(const void*)&fOrientation) + 6));
+ dot = SkUnit3D::Dot(*SkTCast<const SkUnit3D*>(&diff),
+ *SkTCast<const SkUnit3D*>(SkTCast<const SkScalar*>(&fOrientation) + 6));
patchPtr = (const SkScalar*)&quilt;
matrix->set(SkMatrix::kMScaleX, SkScalarDotDiv(3, patchPtr, 1, mapPtr, 1, dot));
diff --git a/src/views/animated/SkStaticTextView.cpp b/src/views/animated/SkStaticTextView.cpp
index 8ab11835d7..199b2fe8c5 100644
--- a/src/views/animated/SkStaticTextView.cpp
+++ b/src/views/animated/SkStaticTextView.cpp
@@ -154,25 +154,29 @@ if (false) { // avoid bit rot, suppress warning
this->INHERITED::onInflate(dom, node);
int index;
- if ((index = dom.findList(node, "mode", "fixed,auto-width,auto-height")) >= 0)
+ if ((index = dom.findList(node, "mode", "fixed,auto-width,auto-height")) >= 0) {
this->setMode((Mode)index);
- else
+ } else {
assert_no_attr(dom, node, "mode");
+ }
- if ((index = dom.findList(node, "spacing-align", "start,center,end")) >= 0)
+ if ((index = dom.findList(node, "spacing-align", "start,center,end")) >= 0) {
this->setSpacingAlign((SkTextBox::SpacingAlign)index);
- else
+ } else {
assert_no_attr(dom, node, "spacing-align");
+ }
SkScalar s[2];
- if (dom.findScalars(node, "margin", s, 2))
+ if (dom.findScalars(node, "margin", s, 2)) {
this->setMargin(s[0], s[1]);
- else
+ } else {
assert_no_attr(dom, node, "margin");
+ }
const char* text = dom.findAttr(node, "text");
- if (text)
+ if (text) {
this->setText(text);
+ }
if ((node = dom.getFirstChild(node, "paint")) != NULL &&
(node = dom.getFirstChild(node, "screenplay")) != NULL)
diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp
index 086b7373a8..c0babeecea 100644
--- a/tests/MathTest.cpp
+++ b/tests/MathTest.cpp
@@ -184,14 +184,14 @@ static float nextFloat(SkRandom& rand) {
*/
static bool equal_float_native_skia(float x, uint32_t ni, uint32_t si) {
if (!(x == x)) { // NAN
- return si == SK_MaxS32 || si == SK_MinS32;
+ return ((int32_t)si) == SK_MaxS32 || ((int32_t)si) == SK_MinS32;
}
// for out of range, C is undefined, but skia always should return NaN32
if (x > SK_MaxS32) {
- return si == SK_MaxS32;
+ return ((int32_t)si) == SK_MaxS32;
}
if (x < -SK_MaxS32) {
- return si == SK_MinS32;
+ return ((int32_t)si) == SK_MinS32;
}
return si == ni;
}
diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp
index 30542dccae..744f765ac7 100644
--- a/tests/MatrixTest.cpp
+++ b/tests/MatrixTest.cpp
@@ -44,8 +44,8 @@ static bool are_equal(skiatest::Reporter* reporter,
for (int i = 0; i < 9; ++i) {
float aVal = a.get(i);
float bVal = b.get(i);
- int aValI = *reinterpret_cast<int*>(&aVal);
- int bValI = *reinterpret_cast<int*>(&bVal);
+ int aValI = *SkTCast<int*>(&aVal);
+ int bValI = *SkTCast<int*>(&bVal);
if (0 == aVal && 0 == bVal && aValI != bValI) {
foundZeroSignDiff = true;
} else {
@@ -58,8 +58,8 @@ static bool are_equal(skiatest::Reporter* reporter,
for (int i = 0; i < 9; ++i) {
float aVal = a.get(i);
float bVal = b.get(i);
- int aValI = *reinterpret_cast<int*>(&aVal);
- int bValI = *reinterpret_cast<int*>(&bVal);
+ int aValI = *SkTCast<int*>(&aVal);
+ int bValI = *SkTCast<int*>(&bVal);
if (sk_float_isnan(aVal) && aValI == bValI) {
foundNaN = true;
} else {
diff --git a/tests/RTreeTest.cpp b/tests/RTreeTest.cpp
index 0e063378f5..6962c89fb0 100644
--- a/tests/RTreeTest.cpp
+++ b/tests/RTreeTest.cpp
@@ -14,7 +14,7 @@
static const size_t MIN_CHILDREN = 6;
static const size_t MAX_CHILDREN = 11;
-static const size_t NUM_RECTS = 200;
+static const int NUM_RECTS = 200;
static const size_t NUM_ITERATIONS = 100;
static const size_t NUM_QUERIES = 50;
@@ -46,7 +46,7 @@ static bool verify_query(SkIRect query, DataRect rects[],
SkTDArray<void*>& found) {
SkTDArray<void*> expected;
// manually intersect with every rectangle
- for (size_t i = 0; i < NUM_RECTS; ++i) {
+ for (int i = 0; i < NUM_RECTS; ++i) {
if (SkIRect::IntersectsNoEmptyCheck(query, rects[i].rect)) {
expected.push(rects[i].data);
}
@@ -106,7 +106,7 @@ static void TestRTree(skiatest::Reporter* reporter) {
random_data_rects(rand, rects, NUM_RECTS);
// First try bulk-loaded inserts
- for (size_t i = 0; i < NUM_RECTS; ++i) {
+ for (int i = 0; i < NUM_RECTS; ++i) {
rtree->insert(rects[i].data, rects[i].rect, true);
}
rtree->flushDeferredInserts();
@@ -118,7 +118,7 @@ static void TestRTree(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, 0 == rtree->getCount());
// Then try immediate inserts
- for (size_t i = 0; i < NUM_RECTS; ++i) {
+ for (int i = 0; i < NUM_RECTS; ++i) {
rtree->insert(rects[i].data, rects[i].rect);
}
runQueries(reporter, rand, rects, *rtree);