add template macro to "safely" perform casts w/o breaking strict-aliasing
fix aliasing warnings



git-svn-id: http://skia.googlecode.com/svn/trunk@674 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/RectBench.cpp b/bench/RectBench.cpp
index 3874bb3..0c3eb56 100644
--- a/bench/RectBench.cpp
+++ b/bench/RectBench.cpp
@@ -31,14 +31,14 @@
             fColors[i] = rand.nextU() | 0xFF808080;
         }
     }
-    
+
     SkString fName;
     const char* computeName(const char root[]) {
         fName.set(root);
         fName.appendS32(fShift);
         return fName.c_str();
     }
-        
+
 protected:
     virtual void drawThisRect(SkCanvas* c, const SkRect& r, const SkPaint& p) {
         c->drawRect(r, p);
@@ -82,7 +82,7 @@
     SkCanvas::PointMode fMode;
     const char* fName;
 
-    PointsBench(void* param, SkCanvas::PointMode mode, const char* name) : 
+    PointsBench(void* param, SkCanvas::PointMode mode, const char* name) :
         RectBench(param, 2), fMode(mode) {
         fName = name;
     }
@@ -105,8 +105,7 @@
         for (size_t i = 0; i < sizes; i++) {
             paint.setStrokeWidth(gSizes[i]);
             this->setupPaint(&paint);
-            canvas->drawPoints(fMode, N * 2,
-                               reinterpret_cast<const SkPoint*>(fRects), paint);
+            canvas->drawPoints(fMode, N * 2, SkTCast<SkPoint*>(fRects), paint);
             paint.setColor(fColors[i]);
         }
     }