fix warnings on Mac in gm

Fix these class of warnings:
- unused functions
- unused locals
- sign mismatch
- missing function prototypes
- missing newline at end of file
- 64 to 32 bit truncation

The changes prefer to link in dead code in the debug build
with 'if (false)' than to comment it out, but trivial cases
are commented out or sometimes deleted if it appears to be
a copy/paste error.
Review URL: https://codereview.appspot.com/6305046

git-svn-id: http://skia.googlecode.com/svn/trunk@4185 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp
index f81bb4d..ba630ca 100644
--- a/gm/aaclip.cpp
+++ b/gm/aaclip.cpp
@@ -91,7 +91,7 @@
     set the clip to match the target, then draw >> the target in blue.
 */
 
-void draw (SkCanvas* canvas, SkRect& target, int x, int y) {
+static void draw (SkCanvas* canvas, SkRect& target, int x, int y) {
     SkPaint borderPaint;
     borderPaint.setColor(SkColorSetRGB(0x0, 0xDD, 0x0));
     borderPaint.setAntiAlias(true);
@@ -114,22 +114,22 @@
     canvas->restore();
 }
 
-void draw_square (SkCanvas* canvas, int x, int y) {
+static void draw_square (SkCanvas* canvas, int x, int y) {
     SkRect target (SkRect::MakeWH(10 * SK_Scalar1, 10 * SK_Scalar1));
     draw(canvas, target, x, y);
 }
 
-void draw_column (SkCanvas* canvas, int x, int y) {
+static void draw_column (SkCanvas* canvas, int x, int y) {
     SkRect target (SkRect::MakeWH(1 * SK_Scalar1, 10 * SK_Scalar1));
     draw(canvas, target, x, y);
 }
 
-void draw_bar (SkCanvas* canvas, int x, int y) {
+static void draw_bar (SkCanvas* canvas, int x, int y) {
     SkRect target (SkRect::MakeWH(10 * SK_Scalar1, 1 * SK_Scalar1));
     draw(canvas, target, x, y);
 }
 
-void draw_rect_tests (SkCanvas* canvas) {
+static void draw_rect_tests (SkCanvas* canvas) {
     draw_square(canvas, 10, 10);
     draw_column(canvas, 30, 10);
     draw_bar(canvas, 10, 30);
@@ -158,7 +158,9 @@
     }
 
     virtual void onDraw(SkCanvas* canvas) {
-//        test_mask();
+        if (false) { // avoid bit rot, suppress warning
+            test_mask();
+        }
 
         // Initial pixel-boundary-aligned draw
         draw_rect_tests(canvas);
diff --git a/gm/aarectmodes.cpp b/gm/aarectmodes.cpp
index f518cae..ed3d3c6 100644
--- a/gm/aarectmodes.cpp
+++ b/gm/aarectmodes.cpp
@@ -57,18 +57,6 @@
     canvas->drawPath(path, paint);
 }
 
-static SkCanvas* create_canvas(int w, int h) {
-    SkBitmap bm;
-    bm.setConfig(SkBitmap::kARGB_8888_Config, w, h);
-    bm.allocPixels();
-    bm.eraseColor(0);
-    return new SkCanvas(bm);
-}
-
-static const SkBitmap& extract_bitmap(SkCanvas* canvas) {
-    return canvas->getDevice()->accessBitmap(false);
-}
-
 static const struct {
     SkXfermode::Mode  fMode;
     const char*         fLabel;
@@ -154,7 +142,9 @@
         virtual SkISize onISize() { return make_isize(640, 480); }
 
         virtual void onDraw(SkCanvas* canvas) {
-//            test4(canvas);
+            if (false) { // avoid bit rot, suppress warning
+                test4(canvas);
+            }
             const SkRect bounds = SkRect::MakeWH(W, H);
             static const SkAlpha gAlphaValue[] = { 0xFF, 0x88, 0x88 };
 
diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp
index ea015c6..8212acb 100644
--- a/gm/arithmode.cpp
+++ b/gm/arithmode.cpp
@@ -113,7 +113,6 @@
         const SkScalar* k = K;
         const SkScalar* stop = k + SK_ARRAY_COUNT(K);
         SkScalar y = 0;
-        SkScalar x = 0;
         SkScalar gap = SkIntToScalar(src.width() + 20);
         while (k < stop) {
             SkScalar x = 0;
diff --git a/gm/bigmatrix.cpp b/gm/bigmatrix.cpp
index d207ed1..31c0a38 100644
--- a/gm/bigmatrix.cpp
+++ b/gm/bigmatrix.cpp
@@ -40,6 +40,7 @@
         paint.setAntiAlias(true);
 
         bool success = m.invert(&m);
+        SkASSERT(success);
 
         SkPath path;
 
diff --git a/gm/cmykjpeg.cpp b/gm/cmykjpeg.cpp
index 224aaec..4d628b4 100644
--- a/gm/cmykjpeg.cpp
+++ b/gm/cmykjpeg.cpp
@@ -61,8 +61,11 @@
     typedef GM INHERITED;
 };
 
+void forceLinking();
+
 void forceLinking() {
     SkImageDecoder *creator = CreateJPEGImageDecoder();
+    SkASSERT(creator);
 }
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp
index 1ba3827..bbd2409 100644
--- a/gm/gammatext.cpp
+++ b/gm/gammatext.cpp
@@ -12,10 +12,12 @@
 #include "SkTypeface.h"
 
 static SkShader* make_heatGradient(const SkPoint pts[2]) {
+#if 0 // UNUSED
     const SkColor colors[] = {
         SK_ColorBLACK, SK_ColorBLUE, SK_ColorCYAN, SK_ColorGREEN,
         SK_ColorYELLOW, SK_ColorRED, SK_ColorWHITE
     };
+#endif
     const SkColor bw[] = { SK_ColorBLACK, SK_ColorWHITE };
 
     return SkGradientShader::CreateLinear(pts, bw, NULL,
@@ -66,10 +68,10 @@
 static void cgSetPaintForText(CGContextRef cg, const SkPaint& paint) {
     SkColor c = paint.getColor();
     CGFloat rgba[] = {
-        SkColorGetB(c) / 255.0,
-        SkColorGetG(c) / 255.0,
-        SkColorGetR(c) / 255.0,
-        SkColorGetA(c) / 255.0,
+        SkColorGetB(c) / 255.0f,
+        SkColorGetG(c) / 255.0f,
+        SkColorGetR(c) / 255.0f,
+        SkColorGetA(c) / 255.0f,
     };
     CGContextSetRGBFillColor(cg, rgba[0], rgba[1], rgba[2], rgba[3]);
 
@@ -169,12 +171,15 @@
             SkScalar y = SkIntToScalar(40);
             SkScalar stopy = SkIntToScalar(HEIGHT);
             while (y < stopy) {
-#if 1
-                canvas->drawText(text, len, x, y, paint);
-#else
-                cgDrawText(cg, text, len, SkScalarToFloat(x),
-                           static_cast<float>(HEIGHT) - SkScalarToFloat(y),
-                           paint);
+                if (true) {
+                    canvas->drawText(text, len, x, y, paint);
+                } 
+#ifdef SK_BUILD_FOR_MAC
+                else {
+                    cgDrawText(cg, text, len, SkScalarToFloat(x),
+                               static_cast<float>(HEIGHT) - SkScalarToFloat(y),
+                               paint);
+                }
 #endif
                 y += paint.getTextSize() * 2;
             }
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index c6159e3..08c7c52 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -773,7 +773,7 @@
 /**
  * Sets the global GrContext, accessible by indivual GMs
  */
-void SetGr(GrContext* grContext) {
+static void SetGr(GrContext* grContext) {
     SkSafeRef(grContext);
     gGrContext.reset(grContext);
 }
@@ -781,6 +781,7 @@
 /**
  * Gets the global GrContext, can be called by GM tests.
  */
+GrContext* GetGr();
 GrContext* GetGr() {
     return gGrContext.get();
 }
@@ -823,7 +824,6 @@
     bool doReplay = true;
     bool doPipe = false;
     bool doSerialize = false;
-    bool useDebugGL = false;
     bool doDeferred = true;
     bool disableTextureCache = false;
 
diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp
index 8bfa186..8ede95c 100644
--- a/gm/hairmodes.cpp
+++ b/gm/hairmodes.cpp
@@ -10,18 +10,6 @@
 #include "SkColorPriv.h"
 #include "SkShader.h"
 
-static SkCanvas* create_canvas(int w, int h) {
-    SkBitmap bm;
-    bm.setConfig(SkBitmap::kARGB_8888_Config, w, h);
-    bm.allocPixels();
-    bm.eraseColor(0);
-    return new SkCanvas(bm);
-}
-
-static const SkBitmap& extract_bitmap(SkCanvas* canvas) {
-    return canvas->getDevice()->accessBitmap(false);
-}
-
 static const struct {
     SkXfermode::Mode  fMode;
     const char*         fLabel;
diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp
index c4cb499..bf89e0d 100644
--- a/gm/patheffects.cpp
+++ b/gm/patheffects.cpp
@@ -67,7 +67,7 @@
         path.lineTo(SkIntToScalar(gXY[i]), SkIntToScalar(gXY[i+1]));
     path.close();
     path.offset(SkIntToScalar(-6), 0);
-    scale(&path, 1.5);
+    scale(&path, 1.5f);
     
     paint->setPathEffect(new SkPath1DPathEffect(path, SkIntToScalar(21), 0,
                                 SkPath1DPathEffect::kRotate_Style))->unref();
diff --git a/gm/pathreverse.cpp b/gm/pathreverse.cpp
index fc8028e..3f860d5 100644
--- a/gm/pathreverse.cpp
+++ b/gm/pathreverse.cpp
@@ -78,6 +78,7 @@
     }
 
     virtual void onDraw(SkCanvas* canvas) {
+        if (false) test_rev(canvas); // avoid bit rot, suppress warning
         SkRect r = { 10, 10, 100, 60 };
         
         SkPath path;
diff --git a/gm/shadertext.cpp b/gm/shadertext.cpp
index b574ab6..0f2a9e9 100644
--- a/gm/shadertext.cpp
+++ b/gm/shadertext.cpp
@@ -36,7 +36,7 @@
     canvas.drawPaint(paint);
 }
 
-SkShader* MakeBitmapShader(SkShader::TileMode tx, SkShader::TileMode ty,
+static SkShader* MakeBitmapShader(SkShader::TileMode tx, SkShader::TileMode ty,
                            int w, int h) {
     static SkBitmap bmp;
     if (bmp.isNull()) {
diff --git a/gm/system_preferences_mac.mm b/gm/system_preferences_mac.mm
index 2c772a1..1c43b74 100644
--- a/gm/system_preferences_mac.mm
+++ b/gm/system_preferences_mac.mm
@@ -7,16 +7,21 @@
 
 #import <Cocoa/Cocoa.h>
 
+// FIXME: should be in a header
+void setSystemPreferences();
+
 void setSystemPreferences() {
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 
     // Set LCD font smoothing level for this application (does not affect other
     // applications). Based on resetDefaultsToConsistentValues() in
     // http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm
-    static const int NoFontSmoothing     = 0;
-    static const int LightFontSmoothing  = 1;
-    static const int MediumFontSmoothing = 2;
-    static const int StrongFontSmoothing = 3;
+    enum {
+        NoFontSmoothing     = 0,
+        LightFontSmoothing  = 1,
+        MediumFontSmoothing = 2,
+        StrongFontSmoothing = 3,
+    };
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     [defaults setInteger:MediumFontSmoothing forKey:@"AppleFontSmoothing"];