The plain Makefile was using -Wall, but the gyp build wasn't.  This CL turns on
-Wall -Wextra and -Wno-unused in common.gypi.  This revealed a lot of warnings
(and some actual bugs), all of which I fixed here.  This is pretty mindless
stuff for the most part (order of intialization, missing initializers, && within
||, etc), but will allow us to build cleanly with -Wall and -Wextra (and
-Werror, if we so choose).

I put defaults into switches that were missing cases.  I could put in the actual
missing enums instead if that's desired.  I could also assert on missing enums
instead of break, if that's desired.  I wasn't sure how to test the stuff in
"animator", so that should be looked at a bit more closely.

Review URL:  http://codereview.appspot.com/4547055/



git-svn-id: http://skia.googlecode.com/svn/trunk@1386 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/include/GrSamplerState.h b/gpu/include/GrSamplerState.h
index f477495..373ea94 100644
--- a/gpu/include/GrSamplerState.h
+++ b/gpu/include/GrSamplerState.h
@@ -131,7 +131,7 @@
     SampleMode getSampleMode() const { return fSampleMode; }
     const GrMatrix& getMatrix() const { return fMatrix; }
     const GrRect& getTextureDomain() const { return fTextureDomain; }
-    const bool hasTextureDomain() const {return SkIntToScalar(0) != fTextureDomain.right();}
+    bool hasTextureDomain() const {return SkIntToScalar(0) != fTextureDomain.right();}
     Filter getFilter() const { return fFilter; }
 
     bool isGradient() const {
diff --git a/gpu/src/GrGpuGLFixed.h b/gpu/src/GrGpuGLFixed.h
index 077b6e2..487c09f 100644
--- a/gpu/src/GrGpuGLFixed.h
+++ b/gpu/src/GrGpuGLFixed.h
@@ -41,7 +41,7 @@
     const GrMatrix& getHWSamplerMatrix(int stage) const {
         return fHWDrawState.fSamplerStates[stage].getMatrix();
     }
-    const void recordHWSamplerMatrix(int stage, const GrMatrix& matrix) {
+    void recordHWSamplerMatrix(int stage, const GrMatrix& matrix) {
         fHWDrawState.fSamplerStates[stage].setMatrix(matrix);
     }
 
diff --git a/gpu/src/GrStencil.cpp b/gpu/src/GrStencil.cpp
index a537e16..edf83fe 100644
--- a/gpu/src/GrStencil.cpp
+++ b/gpu/src/GrStencil.cpp
@@ -16,7 +16,14 @@
 
 #include "GrStencil.h"
 
-const GrStencilSettings GrStencilSettings::gDisabled = {};
+const GrStencilSettings GrStencilSettings::gDisabled = {
+    kKeep_StencilOp,     kKeep_StencilOp,
+    kKeep_StencilOp,     kKeep_StencilOp,
+    kAlways_StencilFunc, kAlways_StencilFunc,
+    0x0,                 0x0,
+    0x0,                 0x0,
+    0x0,                 0x0
+};
 GR_STATIC_ASSERT(0 == kKeep_StencilOp);
 GR_STATIC_ASSERT(0 == kAlways_StencilFunc);
 
diff --git a/gpu/src/GrTesselatedPathRenderer.cpp b/gpu/src/GrTesselatedPathRenderer.cpp
index 8a33012..51d6db8 100644
--- a/gpu/src/GrTesselatedPathRenderer.cpp
+++ b/gpu/src/GrTesselatedPathRenderer.cpp
@@ -116,7 +116,7 @@
         p = q;
     }
     GrDrawTarget::Edge prev_edge = *edges->back();
-    for (size_t i = 0; i < edges->count(); ++i) {
+    for (int i = 0; i < edges->count(); ++i) {
         GrDrawTarget::Edge edge = edges->at(i);
         vertices[i] = prev_edge.intersect(edge);
         inverse.mapPoints(&vertices[i], 1);
@@ -131,7 +131,6 @@
                                         GrPathFill fill,
                                         const GrPoint* translate) {
     GrDrawTarget::AutoStateRestore asr(target);
-    bool colorWritesWereDisabled = target->isColorWriteDisabled();
     // face culling doesn't make sense here
     GrAssert(GrDrawTarget::kBoth_DrawFace == target->getDrawFace());
 
@@ -255,7 +254,7 @@
             target->getViewInverse(&inverse);
 
             count = computeEdgesAndOffsetVertices(matrix, inverse, base, count, &edges);
-            int maxEdges = target->getMaxEdges();
+            size_t maxEdges = target->getMaxEdges();
             if (count <= maxEdges) {
                 // All edges fit; upload all edges and draw all verts as a fan
                 target->setVertexSourceToArray(layout, base, count);
@@ -308,7 +307,7 @@
     for (int sp = 0; sp < subpathCnt; ++sp) {
         internal_gluTessBeginContour(tess);
         int start = i;
-        int end = start + subpathVertCount[sp];
+        size_t end = start + subpathVertCount[sp];
         for (; i < end; ++i) {
             double* inVertex = &inVertices[i * 3];
             *vertices.append() = GrPoint::Make(inVertex[0], inVertex[1]);
diff --git a/gpu/src/gr_unittests.cpp b/gpu/src/gr_unittests.cpp
index 7981bb1..df11878 100644
--- a/gpu/src/gr_unittests.cpp
+++ b/gpu/src/gr_unittests.cpp
@@ -68,7 +68,7 @@
     for (size_t n = 0; n < GR_ARRAY_COUNT(array); n++) {
         for (size_t i = 0; i < n; i++) {
             int index = GrTBSearch<int, int>(array, n, array[i]);
-            GrAssert(index == i);
+            GrAssert(index == (int) i);
             index = GrTBSearch<int, int>(array, n, -array[i]);
             GrAssert(index < 0);
         }
diff --git a/gyp/common.gypi b/gyp/common.gypi
index aadaffb..78482a0 100644
--- a/gyp/common.gypi
+++ b/gyp/common.gypi
@@ -65,6 +65,7 @@
               'cflags': ['-O2']
             },
           },
+          'cflags': [ '-Wall', '-Wextra', '-Wno-unused' ]
         },
       },
     ],
diff --git a/samplecode/ClockFaceView.cpp b/samplecode/ClockFaceView.cpp
index 6d4ef97..c829b69 100644
--- a/samplecode/ClockFaceView.cpp
+++ b/samplecode/ClockFaceView.cpp
@@ -17,7 +17,7 @@
     unsigned g = SkGetPackedG32(c);
     unsigned b = SkGetPackedB32(c);
 
-    unsigned x = r * 5 + g * 7 + b * 4 >> 4;
+    unsigned x = (r * 5 + g * 7 + b * 4) >> 4;
 
     return SkPackARGB32(0, x, x, x) | (c & (SK_A32_MASK << SK_A32_SHIFT));
 }
diff --git a/samplecode/SampleAARects.cpp b/samplecode/SampleAARects.cpp
index b42c1e9..34a33b0 100644
--- a/samplecode/SampleAARects.cpp
+++ b/samplecode/SampleAARects.cpp
@@ -70,7 +70,7 @@
         SkScalar dx = SkIntToScalar(80);
         SkScalar dy = SkIntToScalar(100);
         SkMatrix matrix;
-        for (int p = 0; p < SK_ARRAY_COUNT(paints); ++p) {
+        for (size_t p = 0; p < SK_ARRAY_COUNT(paints); ++p) {
             for (int stroke = 0; stroke < 2; ++stroke) {
                 paints[p].setStyle(stroke ? SkPaint::kStroke_Style : SkPaint::kFill_Style);
                 for (int a = 0; a < 3; ++ a) {
diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp
index 75d1a31..abbf8f9 100644
--- a/samplecode/SampleAll.cpp
+++ b/samplecode/SampleAll.cpp
@@ -408,7 +408,7 @@
 			pos2[index].set(SkIntToScalar(index * 10), SkIntToScalar(20));
 		
         // shaders
-        SkPoint linearPoints[] = { 0, 0, SkIntToScalar(40), SkIntToScalar(40) };
+        SkPoint linearPoints[] = { { 0, 0, }, { SkIntToScalar(40), SkIntToScalar(40) } };
         SkColor linearColors[] = { SK_ColorRED, SK_ColorBLUE };
         SkScalar* linearPos = NULL;
         int linearCount = 2;
@@ -624,7 +624,7 @@
     }
     
     SkShader* shaderTest() {
-        SkPoint pts[] = {0, 0, SkIntToScalar(100), 0 };
+        SkPoint pts[] = { { 0, 0, }, { SkIntToScalar(100), 0 } };
         SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
         SkShader* shaderA = SkGradientShader::CreateLinear(pts, colors, NULL, 
             2, SkShader::kClamp_TileMode);
@@ -647,7 +647,7 @@
 	}
 
     void drawRaster(SkCanvas* canvas)  {
-        for (int index = 0; index < SK_ARRAY_COUNT(gRastProcs); index++)
+        for (size_t index = 0; index < SK_ARRAY_COUNT(gRastProcs); index++)
             drawOneRaster(canvas);
     }
     
@@ -665,7 +665,7 @@
 
         SkString str("GOOGLE");
 
-        for (int i = 0; i < SK_ARRAY_COUNT(gRastProcs); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gRastProcs); i++) {
             apply_shader(&paint, i);
             
           //  paint.setMaskFilter(NULL);
diff --git a/samplecode/SampleArc.cpp b/samplecode/SampleArc.cpp
index 504d8d8..8e3ad88 100644
--- a/samplecode/SampleArc.cpp
+++ b/samplecode/SampleArc.cpp
@@ -97,7 +97,7 @@
             225, 90
         };
         
-        for (int i = 0; i < SK_ARRAY_COUNT(gAngles); i += 2) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gAngles); i += 2) {
             paint.setColor(SK_ColorBLACK);
             drawRectWithLines(canvas, r, paint);
 
diff --git a/samplecode/SampleAvoid.cpp b/samplecode/SampleAvoid.cpp
index 9536350..868a67c 100644
--- a/samplecode/SampleAvoid.cpp
+++ b/samplecode/SampleAvoid.cpp
@@ -23,7 +23,7 @@
                                                  SK_ARRAY_COUNT(colors),
                                                  SkShader::kMirror_TileMode);
 #else
-        SkPoint pts[] = { SkIntToScalar(W)/2, SkIntToScalar(H)/2 };
+        SkPoint pts[] = { { SkIntToScalar(W)/2, SkIntToScalar(H)/2 } };
         fShader = SkGradientShader::CreateRadial(pts[0], SkIntToScalar(H)/5,
                                                  colors, NULL,
                                                  SK_ARRAY_COUNT(colors),
diff --git a/samplecode/SampleBitmapRect.cpp b/samplecode/SampleBitmapRect.cpp
index 2d56db9..002b2b9 100644
--- a/samplecode/SampleBitmapRect.cpp
+++ b/samplecode/SampleBitmapRect.cpp
@@ -25,7 +25,7 @@
     canvas.drawColor(SK_ColorRED);
     SkPaint paint;
     paint.setAntiAlias(true);
-    const SkPoint pts[] = { 0, 0, 64, 64 };
+    const SkPoint pts[] = { { 0, 0 }, { 64, 64 } };
     const SkColor colors[] = { SK_ColorWHITE, SK_ColorBLUE };
     paint.setShader(SkGradientShader::CreateLinear(pts, colors, NULL, 2,
                                        SkShader::kClamp_TileMode))->unref();
diff --git a/samplecode/SampleComplexClip.cpp b/samplecode/SampleComplexClip.cpp
index 8ee078b..672d055 100644
--- a/samplecode/SampleComplexClip.cpp
+++ b/samplecode/SampleComplexClip.cpp
@@ -88,7 +88,7 @@
         canvas->save();
 
         for (int invA = 0; invA < 2; ++invA) {
-            for (int op = 0; op < SK_ARRAY_COUNT(gOps); ++op) {
+            for (size_t op = 0; op < SK_ARRAY_COUNT(gOps); ++op) {
                 int idx = invA * SK_ARRAY_COUNT(gOps) + op;
                 if (!(idx % 3)) {
                     canvas->restore();
diff --git a/samplecode/SampleDitherBitmap.cpp b/samplecode/SampleDitherBitmap.cpp
index 91199c2..0d62446 100644
--- a/samplecode/SampleDitherBitmap.cpp
+++ b/samplecode/SampleDitherBitmap.cpp
@@ -16,7 +16,7 @@
 
 static void draw_gradient(SkCanvas* canvas) {
     SkRect r = { 0, 0, SkIntToScalar(256), SkIntToScalar(32) };
-    SkPoint pts[] = { r.fLeft, r.fTop, r.fRight, r.fTop };
+    SkPoint pts[] = { { r.fLeft, r.fTop }, { r.fRight, r.fTop } };
     SkColor colors[] = { 0xFF000000, 0xFFFF0000 };
     SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2,
                                                  SkShader::kClamp_TileMode);
diff --git a/samplecode/SampleDrawLooper.cpp b/samplecode/SampleDrawLooper.cpp
index abe2c70..30879f7 100644
--- a/samplecode/SampleDrawLooper.cpp
+++ b/samplecode/SampleDrawLooper.cpp
@@ -35,7 +35,7 @@
         info.fPaintBits = SkLayerDrawLooper::kStyle_Bit | SkLayerDrawLooper::kMaskFilter_Bit;
         info.fColorMode = SkXfermode::kSrc_Mode;
         
-        for (int i = 0; i < SK_ARRAY_COUNT(gParams); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gParams); i++) {
             info.fOffset.set(gParams[i].fOffset, gParams[i].fOffset);
             SkPaint* paint = fLooper->addLayer(info);
             paint->setAntiAlias(true);
diff --git a/samplecode/SampleEffects.cpp b/samplecode/SampleEffects.cpp
index 158a89f..a63c08d 100644
--- a/samplecode/SampleEffects.cpp
+++ b/samplecode/SampleEffects.cpp
@@ -44,7 +44,7 @@
 
 static void paint_proc3(SkPaint* paint) {
     SkColor colors[] = { SK_ColorRED, COLOR, SK_ColorBLUE };
-    SkPoint pts[] = { 3, 0, 7, 5 };
+    SkPoint pts[] = { { 3, 0 }, { 7, 5 } };
     paint->setShader(SkGradientShader::CreateLinear(pts, colors, NULL, SK_ARRAY_COUNT(colors),
                                         SkShader::kMirror_TileMode))->unref();
 }
diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp
index f1e8dd8..6fc9c83 100644
--- a/samplecode/SampleLayers.cpp
+++ b/samplecode/SampleLayers.cpp
@@ -22,7 +22,7 @@
 
 static void make_paint(SkPaint* paint) {
     SkColor colors[] = { 0, SK_ColorWHITE };
-    SkPoint pts[] = { 0, 0, 0, SK_Scalar1*20 };
+    SkPoint pts[] = { { 0, 0 }, { 0, SK_Scalar1*20 } };
     SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, SkShader::kClamp_TileMode);
     
     paint->setShader(s)->unref();
diff --git a/samplecode/SampleLineClipper.cpp b/samplecode/SampleLineClipper.cpp
index 2635a30..d0a8667 100644
--- a/samplecode/SampleLineClipper.cpp
+++ b/samplecode/SampleLineClipper.cpp
@@ -155,7 +155,7 @@
     SkPoint     fPts[4];
 
     void randPts() {
-        for (int i = 0; i < SK_ARRAY_COUNT(fPts); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(fPts); i++) {
             fPts[i].set(fRand.nextUScalar1() * 640,
                         fRand.nextUScalar1() * 480);
         }
diff --git a/samplecode/SampleMeasure.cpp b/samplecode/SampleMeasure.cpp
index 70b8812..eb7a288 100644
--- a/samplecode/SampleMeasure.cpp
+++ b/samplecode/SampleMeasure.cpp
@@ -46,7 +46,7 @@
     SkRect      bounds;
 
     SkPaint p(paint);
-    for (int i = 0; i < SK_ARRAY_COUNT(gSettings); i++) {
+    for (size_t i = 0; i < SK_ARRAY_COUNT(gSettings); i++) {
         p.setLinearText(gSettings[i].fLinearText);
         p.setDevKernText(gSettings[i].fDevKernText);
         SkScalar scale = gSettings[i].fScale;
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 0bfaa5a..ea365c7 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -42,7 +42,8 @@
 }
 
 static SkShader* make_shader1(const SkIPoint& size) {
-    SkPoint pts[] = { 0, 0, SkIntToScalar(size.fX), SkIntToScalar(size.fY) };
+    SkPoint pts[] = { { 0, 0, },
+                      { SkIntToScalar(size.fX), SkIntToScalar(size.fY) } };
     SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorRED };
     return SkGradientShader::CreateLinear(pts, colors, NULL,
                     SK_ARRAY_COUNT(colors), SkShader::kMirror_TileMode, NULL);
@@ -316,7 +317,7 @@
     }
 
     virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
-        for (int i = 0; i < SK_ARRAY_COUNT(fPts); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(fPts); i++) {
             if (hittest(fPts[i], x, y)) {
                 return new PtClick(this, i);
             }
diff --git a/samplecode/SamplePath.cpp b/samplecode/SamplePath.cpp
index 4fef377..cd45ed9 100644
--- a/samplecode/SamplePath.cpp
+++ b/samplecode/SamplePath.cpp
@@ -168,9 +168,9 @@
             SkPaint::kRound_Join
         };
 
-        for (int i = 0; i < SK_ARRAY_COUNT(gJoins); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gJoins); i++) {
             canvas->save();
-            for (int j = 0; j < SK_ARRAY_COUNT(fPath); j++) {
+            for (size_t j = 0; j < SK_ARRAY_COUNT(fPath); j++) {
                 this->drawPath(canvas, fPath[j], gJoins[i]);
                 canvas->translate(SkIntToScalar(200), 0);
             }
diff --git a/samplecode/SamplePolyToPoly.cpp b/samplecode/SamplePolyToPoly.cpp
index 29a47f7..aea0cb4 100644
--- a/samplecode/SamplePolyToPoly.cpp
+++ b/samplecode/SamplePolyToPoly.cpp
@@ -13,8 +13,12 @@
 	PolyToPolyView() {
         // tests
         {
-            SkPoint src[] = { 0, 0, SK_Scalar1, 0, 0, SK_Scalar1 };
-            SkPoint dst[] = { 0, 0, 2*SK_Scalar1, 0, 0, 2*SK_Scalar1 };
+            SkPoint src[] = { { 0, 0 },
+                              { SK_Scalar1, 0 },
+                              { 0, SK_Scalar1 } };
+            SkPoint dst[] = { { 0, 0 },
+                              { 2*SK_Scalar1, 0 },
+                              { 0, 2*SK_Scalar1 } };
             SkMatrix m1, m2;
             bool success;
 
@@ -42,14 +46,14 @@
 
             {
                 const SkPoint src[] = {
-                    SkIntToScalar(1), SkIntToScalar(0),
-                    SkIntToScalar(4), SkIntToScalar(7),
-                    SkIntToScalar(10), SkIntToScalar(2)
+                    { SkIntToScalar(1), SkIntToScalar(0) },
+                    { SkIntToScalar(4), SkIntToScalar(7) },
+                    { SkIntToScalar(10), SkIntToScalar(2) }
                 };
                 const SkPoint dst[] = {
-                    SkIntToScalar(4), SkIntToScalar(2),
-                    SkIntToScalar(45), SkIntToScalar(26),
-                    SkIntToScalar(32), SkIntToScalar(17)
+                    { SkIntToScalar(4), SkIntToScalar(2) },
+                    { SkIntToScalar(45), SkIntToScalar(26) },
+                    { SkIntToScalar(32), SkIntToScalar(17) }
                 };
 
                 SkMatrix m0, m1;
diff --git a/samplecode/SampleRegion.cpp b/samplecode/SampleRegion.cpp
index 272c722..822bd6f 100644
--- a/samplecode/SampleRegion.cpp
+++ b/samplecode/SampleRegion.cpp
@@ -235,7 +235,7 @@
         
         canvas->translate(0, SkIntToScalar(200));
 
-        for (int op = 0; op < SK_ARRAY_COUNT(gOps); op++) {
+        for (size_t op = 0; op < SK_ARRAY_COUNT(gOps); op++) {
             canvas->drawText(gOps[op].fName, strlen(gOps[op].fName), SkIntToScalar(75), SkIntToScalar(50), textPaint);
 
             this->drawRgnOped(canvas, gOps[op].fOp, gOps[op].fColor);
diff --git a/samplecode/SampleShaderText.cpp b/samplecode/SampleShaderText.cpp
index 790137c..2748b55 100644
--- a/samplecode/SampleShaderText.cpp
+++ b/samplecode/SampleShaderText.cpp
@@ -11,7 +11,7 @@
 
     SkCanvas    canvas(*bm);
     SkScalar s = SkIntToScalar(w < h ? w : h);
-    SkPoint     pts[] = { 0, 0, s, s };
+    SkPoint     pts[] = { { 0, 0 }, { s, s } };
     SkColor     colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE };
     SkScalar    pos[] = { 0, SK_Scalar1/2, SK_Scalar1 };
     SkPaint     paint;
diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp
index f57cb5a..3d2a61e 100644
--- a/samplecode/SampleSlides.cpp
+++ b/samplecode/SampleSlides.cpp
@@ -324,7 +324,8 @@
 }
 
 static SkShader* make_shader1(const SkIPoint& size) {
-    SkPoint pts[] = { 0, 0, SkIntToScalar(size.fX), SkIntToScalar(size.fY) };
+    SkPoint pts[] = { { 0, 0 },
+                      { SkIntToScalar(size.fX), SkIntToScalar(size.fY) } };
     SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorRED };
     return SkGradientShader::CreateLinear(pts, colors, NULL,
                                           SK_ARRAY_COUNT(colors), SkShader::kMirror_TileMode, NULL);
@@ -439,7 +440,7 @@
     paint.setDither(true);
     paint.setFilterBitmap(true);
     
-    for (int i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
+    for (size_t i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
         canvas->save();
         
         paint.setShader(NULL);
@@ -725,7 +726,7 @@
     paint.setTextSize(75);
     paint.setAntiAlias(true);
     paint.setColor(SK_ColorBLUE);
-    for (int i = 0; i < SK_ARRAY_COUNT(gRastProcs); i++) {
+    for (size_t i = 0; i < SK_ARRAY_COUNT(gRastProcs); i++) {
         apply_shader(&paint, i);
         canvas->drawText(str, len, x, y, paint);
         y += 80;
diff --git a/samplecode/SampleText.cpp b/samplecode/SampleText.cpp
index a2d6dd2..2676530 100644
--- a/samplecode/SampleText.cpp
+++ b/samplecode/SampleText.cpp
@@ -112,7 +112,7 @@
         mm = m;
     }
 
-    SkDEBUGCODE(int length2 =) paint.breakText(text, length, width, &mm);
+    SkDEBUGCODE(size_t length2 =) paint.breakText(text, length, width, &mm);
     SkASSERT(length2 == length);
     SkASSERT(mm == width);
 }
diff --git a/samplecode/SampleTextEffects.cpp b/samplecode/SampleTextEffects.cpp
index 733dd31..f256b2e 100644
--- a/samplecode/SampleTextEffects.cpp
+++ b/samplecode/SampleTextEffects.cpp
@@ -354,7 +354,7 @@
 
         paint.setTypeface(fFace);
 
-        for (int i = 0; i < SK_ARRAY_COUNT(gRastProcs); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gRastProcs); i++) {
             apply_shader(&paint, i);
 
           //  paint.setMaskFilter(NULL);
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index b3c73d7..4752ed1 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -22,7 +22,7 @@
     bm->eraseColor(0);
     
     SkCanvas    canvas(*bm);
-    SkPoint     pts[] = { 0, 0, SkIntToScalar(w), SkIntToScalar(h) };
+    SkPoint     pts[] = { { 0, 0 }, { SkIntToScalar(w), SkIntToScalar(h) } };
     SkColor     colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE };
     SkScalar    pos[] = { 0, SK_Scalar1/2, SK_Scalar1 };
     SkPaint     paint;
@@ -62,7 +62,7 @@
 	TilingView()
             : fLooper(SkIntToScalar(1), SkIntToScalar(2), SkIntToScalar(2),
                       0x88000000) {
-        for (int i = 0; i < SK_ARRAY_COUNT(gConfigs); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gConfigs); i++) {
             makebm(&fTexture[i], gConfigs[i], gWidth, gHeight);
         }
     }
@@ -99,8 +99,8 @@
         }
 
         if (textCanvas) {
-            for (int kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
-                for (int ky = 0; ky < SK_ARRAY_COUNT(gModes); ky++) {
+            for (size_t kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
+                for (size_t ky = 0; ky < SK_ARRAY_COUNT(gModes); ky++) {
                     SkPaint p;
                     SkString str;
                     p.setAntiAlias(true);
@@ -118,11 +118,11 @@
         
         y += SkIntToScalar(16);
 
-        for (int i = 0; i < SK_ARRAY_COUNT(gConfigs); i++) {
-            for (int j = 0; j < SK_ARRAY_COUNT(gFilters); j++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(gConfigs); i++) {
+            for (size_t j = 0; j < SK_ARRAY_COUNT(gFilters); j++) {
                 x = SkIntToScalar(10);
-                for (int kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
-                    for (int ky = 0; ky < SK_ARRAY_COUNT(gModes); ky++) {
+                for (size_t kx = 0; kx < SK_ARRAY_COUNT(gModes); kx++) {
+                    for (size_t ky = 0; ky < SK_ARRAY_COUNT(gModes); ky++) {
                         SkPaint paint;
                         setup(&paint, fTexture[i], gFilters[j], gModes[kx], gModes[ky]);
                         paint.setDither(true);
diff --git a/samplecode/SampleVertices.cpp b/samplecode/SampleVertices.cpp
index 4557cc4..74e757f 100644
--- a/samplecode/SampleVertices.cpp
+++ b/samplecode/SampleVertices.cpp
@@ -38,7 +38,8 @@
 }
 
 static SkShader* make_shader1(const SkIPoint& size) {
-    SkPoint pts[] = { 0, 0, SkIntToScalar(size.fX), SkIntToScalar(size.fY) };
+    SkPoint pts[] = { { 0, 0 },
+                      { SkIntToScalar(size.fX), SkIntToScalar(size.fY) } };
     SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorRED };
     return SkGradientShader::CreateLinear(pts, colors, NULL,
                     SK_ARRAY_COUNT(colors), SkShader::kMirror_TileMode, NULL);
@@ -88,7 +89,7 @@
         paint.setDither(true);
         paint.setFilterBitmap(true);
 
-        for (int i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
+        for (size_t i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
             canvas->save();
 
             paint.setShader(NULL);
diff --git a/src/animator/SkDisplayApply.cpp b/src/animator/SkDisplayApply.cpp
index b9e65f7..8aca71f 100644
--- a/src/animator/SkDisplayApply.cpp
+++ b/src/animator/SkDisplayApply.cpp
@@ -294,7 +294,7 @@
     if ((mode == kMode_immediate || mode == kMode_create) && scope == NULL)
         return false;   // !!! error?
     bool enableMe = scope && (scope->hasEnable() || scope->isApply() || scope->isDrawable() == false);
-    if (mode == kMode_immediate && enableMe || mode == kMode_create)
+    if ((mode == kMode_immediate && enableMe) || mode == kMode_create)
         activate(maker);    // for non-drawables like post, prime them here
     if (mode == kMode_immediate && enableMe)
         fActive->enable();
@@ -479,7 +479,7 @@
     } else {
         SkScriptValue scriptValue;
         bool success = target->getProperty(info->propertyIndex(), &scriptValue);
-        SkASSERT(success = true);
+        SkASSERT(success == true);
         last[0] = scriptValue.fOperand;
         scriptValue.fOperand = fActive->fSaveRestore[activeIndex][0];
         target->setProperty(info->propertyIndex(), scriptValue);
@@ -624,8 +624,8 @@
         SkInterpolatorBase::Result interpResult = fActive->fInterpolators[inner]->timeToValues(
             innerTime, values.get());
         result |= (interpResult != SkInterpolatorBase::kFreezeEnd_Result);
-        if ((transition != SkApply::kTransition_reverse && interpResult == SkInterpolatorBase::kFreezeEnd_Result ||
-                transition == SkApply::kTransition_reverse && fLastTime == 0) && state.fUnpostedEndEvent) {
+        if (((transition != SkApply::kTransition_reverse && interpResult == SkInterpolatorBase::kFreezeEnd_Result) ||
+                (transition == SkApply::kTransition_reverse && fLastTime == 0)) && state.fUnpostedEndEvent) {
 //          SkDEBUGF(("interpolate: post on end\n"));
             state.fUnpostedEndEvent = false;
             maker.postOnEnd(animate, state.fBegin + state.fDuration);
diff --git a/src/animator/SkDisplayXMLParser.cpp b/src/animator/SkDisplayXMLParser.cpp
index a94b848..db6c838 100644
--- a/src/animator/SkDisplayXMLParser.cpp
+++ b/src/animator/SkDisplayXMLParser.cpp
@@ -304,8 +304,8 @@
         }
         return info;
 next:
-        if (type == SkType_Drawable || type == SkType_Displayable && 
-            container->fDisplayable->isDrawable()) {
+        if (type == SkType_Drawable || (type == SkType_Displayable && 
+            container->fDisplayable->isDrawable())) {
 rectNext:
             if (fParents.count() > 1) {
                 Parent* parent = fParents.end() - 2;
diff --git a/src/animator/SkDump.cpp b/src/animator/SkDump.cpp
index eac956c..426a1e6 100644
--- a/src/animator/SkDump.cpp
+++ b/src/animator/SkDump.cpp
@@ -58,7 +58,7 @@
         maker.fEvents.dump(maker);
     if ((hasAttr |= (name.size() > 0)) == true)
         maker.dump(name.c_str());
-    if (displayList > 0 || displayList != 0 && hasAttr == false)
+    if (displayList > 0 || (displayList != 0 && hasAttr == false))
         maker.fDisplayList.dump(&maker);
     return true;
 }
diff --git a/src/animator/SkScript.cpp b/src/animator/SkScript.cpp
index f81147d..efb89a58 100644
--- a/src/animator/SkScript.cpp
+++ b/src/animator/SkScript.cpp
@@ -305,8 +305,8 @@
             } while (true);
             signed char topPrecedence = gPrecedence[compare];
             SkASSERT(topPrecedence != -1);
-            if (topPrecedence > precedence || topPrecedence == precedence && 
-                    gOpAttributes[op].fLeftType == kNoType) {
+            if (topPrecedence > precedence || (topPrecedence == precedence && 
+                    gOpAttributes[op].fLeftType == kNoType)) {
                 break;
             }
             if (processOp() == false)
diff --git a/src/animator/SkScriptDecompile.cpp b/src/animator/SkScriptDecompile.cpp
index d582d33..98db1fb 100644
--- a/src/animator/SkScriptDecompile.cpp
+++ b/src/animator/SkScriptDecompile.cpp
@@ -114,7 +114,7 @@
 // check to see that there are no missing or duplicate entries
 void SkScriptEngine2::ValidateDecompileTable() {
     SkScriptEngine2::TypeOp op = SkScriptEngine2::kNop;
-    int index;
+    size_t index;
     for (index = 0; index < gOpNamesSize; index++) {
         SkASSERT(gOpNames[index].fOp == op);
         op = (SkScriptEngine2::TypeOp) (op + 1);
@@ -132,9 +132,9 @@
     SkASSERT(length > 0);
     const unsigned char* opCode = start;
     do {
-        SkASSERT(opCode - start < length);
+        SkASSERT((size_t)(opCode - start) < length);
         SkScriptEngine2::TypeOp op = (SkScriptEngine2::TypeOp) *opCode++;
-        SkASSERT(op < gOpNamesSize);
+        SkASSERT((size_t)op < gOpNamesSize);
         SkDebugf("%d: %s", opCode - start - 1, gOpNames[op].fName);
         switch (op) {
         case SkScriptEngine2::kCallback: {
@@ -184,7 +184,7 @@
             SkOperand2::OpType type;
             memcpy(&type, opCode, sizeof(type));
             opCode += sizeof(type);
-            int index = 0;
+            size_t index = 0;
             if (type == 0)
                 SkDebugf(" type: %s", gOperandNames[index].fName);
             else {
@@ -211,6 +211,8 @@
             goto done;
         case SkScriptEngine2::kNop:
                 SkASSERT(0);
+        default:
+            break;
     }
     SkDebugf("\n");
     } while (true);
diff --git a/src/animator/SkScriptRuntime.cpp b/src/animator/SkScriptRuntime.cpp
index 6d8c208..1284198 100644
--- a/src/animator/SkScriptRuntime.cpp
+++ b/src/animator/SkScriptRuntime.cpp
@@ -304,6 +304,8 @@
 			goto done;
 		case SkScriptEngine2::kNop:
 				SkASSERT(0);
+    default:
+        break;
 	}
 	} while (true);
 done:
diff --git a/src/animator/SkScriptTokenizer.cpp b/src/animator/SkScriptTokenizer.cpp
index efd1872..edcc2af 100644
--- a/src/animator/SkScriptTokenizer.cpp
+++ b/src/animator/SkScriptTokenizer.cpp
@@ -8,34 +8,34 @@
 #include "SkOpArray.h"
 
 const SkScriptEngine2::OperatorAttributes SkScriptEngine2::gOpAttributes[] = {
-{ SkOperand2::kNoType },
+{ SkOperand2::kNoType, SkOperand2::kNoType, kNoBias, kResultIsNotBoolean },
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar | SkOperand2::kString), 
-    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar | SkOperand2::kString), kTowardsString },    // kAdd
-{ SkOperand2::kS32, SkOperand2::kS32, kNoBias }, // kBitAnd
-{ SkOperand2::kNoType, SkOperand2::kS32, kNoBias }, // kBitNot
-{ SkOperand2::kS32, SkOperand2::kS32, kNoBias }, // kBitOr
+    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar | SkOperand2::kString), kTowardsString, kResultIsNotBoolean },    // kAdd
+{ SkOperand2::kS32, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kBitAnd
+{ SkOperand2::kNoType, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kBitNot
+{ SkOperand2::kS32, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kBitOr
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), 
-    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias }, // kDivide
+    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias, kResultIsNotBoolean }, // kDivide
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar | SkOperand2::kString), 
     SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar |SkOperand2:: kString), kTowardsNumber, 
     kResultIsBoolean }, // kEqual
-{ SkOperand2::kS32 },     // kFlipOps
+{ SkOperand2::kS32, SkOperand2::kNoType, kNoBias, kResultIsNotBoolean },     // kFlipOps
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar | SkOperand2::kString), 
     SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar | SkOperand2::kString), kTowardsNumber,
     kResultIsBoolean }, // kGreaterEqual
-{ SkOperand2::kNoType, SkOperand2::kS32, kNoBias }, // kLogicalAnd    (really, ToBool)
-{ SkOperand2::kNoType, SkOperand2::kS32, kNoBias }, // kLogicalNot
-{ SkOperand2::kS32, SkOperand2::kS32, kNoBias }, // kLogicalOr
-{ SkOperand2::kNoType, SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias }, // kMinus
+{ SkOperand2::kNoType, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kLogicalAnd    (really, ToBool)
+{ SkOperand2::kNoType, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kLogicalNot
+{ SkOperand2::kS32, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kLogicalOr
+{ SkOperand2::kNoType, SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias, kResultIsNotBoolean }, // kMinus
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), 
-    SkOperand2::OpType(SkOperand2::kS32 |SkOperand2:: kScalar), kNoBias }, // kModulo
+    SkOperand2::OpType(SkOperand2::kS32 |SkOperand2:: kScalar), kNoBias, kResultIsNotBoolean }, // kModulo
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), 
-    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias }, // kMultiply
-{ SkOperand2::kS32, SkOperand2::kS32, kNoBias }, // kShiftLeft
-{ SkOperand2::kS32, SkOperand2::kS32, kNoBias }, // kShiftRight
+    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias, kResultIsNotBoolean }, // kMultiply
+{ SkOperand2::kS32, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kShiftLeft
+{ SkOperand2::kS32, SkOperand2::kS32, kNoBias, kResultIsNotBoolean }, // kShiftRight
 { SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), 
-    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias }, // kSubtract
-{ SkOperand2::kS32, SkOperand2::kS32, kNoBias } // kXor
+    SkOperand2::OpType(SkOperand2::kS32 | SkOperand2::kScalar), kNoBias, kResultIsNotBoolean }, // kSubtract
+{ SkOperand2::kS32, SkOperand2::kS32, kNoBias, kResultIsNotBoolean } // kXor
 };
 
 #define kBracketPrecedence 16
@@ -308,8 +308,8 @@
         } while (true);
         signed char topPrecedence = gPrecedence[compare];
         SkASSERT(topPrecedence != -1);
-        if (topPrecedence > precedence || topPrecedence == precedence && 
-            gOpAttributes[op].fLeftType == SkOperand2::kNoType) {
+        if (topPrecedence > precedence || (topPrecedence == precedence && 
+            gOpAttributes[op].fLeftType == SkOperand2::kNoType)) {
             break;
         }
         processOp();
@@ -1051,7 +1051,8 @@
     fOpStack.pop(&op);
     op = (Op) (op & ~kArtificialOp);
     const OperatorAttributes* attributes = &gOpAttributes[op];
-    SkScriptValue2 value1 = { 0 };
+    SkScriptValue2 value1;
+    memset(&value1, 0, sizeof(SkScriptValue2));
     SkScriptValue2 value2;
     fValueStack.pop(&value2);
     value2.fIsWritten = SkScriptValue2::kUnwritten;
@@ -1230,7 +1231,7 @@
 
 SkScalar SkScriptEngine2::IntToScalar(int32_t s32) {
     SkScalar scalar;
-    if (s32 == SK_NaN32)
+    if (s32 == (int32_t) SK_NaN32)
         scalar = SK_ScalarNaN;
     else if (SkAbs32(s32) == SK_MaxS32)
         scalar = SkSign32(s32) * SK_ScalarMax;
@@ -1261,21 +1262,21 @@
 
 #ifdef SK_DEBUG
 
-#define testInt(expression) { #expression, SkOperand2::kS32, expression }
+#define testInt(expression) { #expression, SkOperand2::kS32, expression, 0, NULL }
 #ifdef SK_SCALAR_IS_FLOAT
-#define testScalar(expression) { #expression, SkOperand2::kScalar, 0, (float) expression }
-#define testRemainder(exp1, exp2) { #exp1 "%" #exp2, SkOperand2::kScalar, 0, fmodf(exp1, exp2) }
+#define testScalar(expression) { #expression, SkOperand2::kScalar, 0, (float) expression, NULL }
+#define testRemainder(exp1, exp2) { #exp1 "%" #exp2, SkOperand2::kScalar, 0, fmodf(exp1, exp2), NULL }
 #else
 #ifdef SK_CAN_USE_FLOAT
-#define testScalar(expression) { #expression, SkOperand2::kScalar, 0, (int) ((expression) * 65536.0f) }
-#define testRemainder(exp1, exp2) { #exp1 "%" #exp2, SkOperand2::kScalar, 0, (int) (fmod(exp1, exp2)  * 65536.0f) }
+#define testScalar(expression) { #expression, SkOperand2::kScalar, 0, (int) ((expression) * 65536.0f), NULL }
+#define testRemainder(exp1, exp2) { #exp1 "%" #exp2, SkOperand2::kScalar, 0, (int) (fmod(exp1, exp2)  * 65536.0f), NULL }
 #endif
 #endif
-#define testTrue(expression) { #expression, SkOperand2::kS32, 1 }
-#define testFalse(expression) { #expression, SkOperand2::kS32, 0 }
+#define testTrue(expression) { #expression, SkOperand2::kS32, 1, 0, NULL }
+#define testFalse(expression) { #expression, SkOperand2::kS32, 0, 0, NULL }
 
 static const SkScriptNAnswer2 scriptTests[]  = {
-    testInt(1||0&&3),
+    testInt(1||(0&&3)),
 #ifdef SK_CAN_USE_FLOAT
     testScalar(- -5.5- -1.5),
     testScalar(1.0+5), 
@@ -1307,12 +1308,12 @@
     {    "'123'+\"456\"", SkOperand2::kString, 0, 0, "123456" },
     {    "123+\"456\"", SkOperand2::kString, 0, 0, "123456" },
     {    "'123'+456", SkOperand2::kString, 0, 0, "123456" },
-    {    "'123'|\"456\"", SkOperand2::kS32, 123|456 },
-    {    "123|\"456\"", SkOperand2::kS32, 123|456 },
-    {    "'123'|456", SkOperand2::kS32, 123|456 },
-    {    "'2'<11", SkOperand2::kS32, 1 },
-    {    "2<'11'", SkOperand2::kS32, 1 },
-    {    "'2'<'11'", SkOperand2::kS32, 0 },
+    {    "'123'|\"456\"", SkOperand2::kS32, 123|456, 0, NULL },
+    {    "123|\"456\"", SkOperand2::kS32, 123|456, 0, NULL },
+    {    "'123'|456", SkOperand2::kS32, 123|456, 0, NULL },
+    {    "'2'<11", SkOperand2::kS32, 1, 0, NULL },
+    {    "2<'11'", SkOperand2::kS32, 1, 0, NULL },
+    {    "'2'<'11'", SkOperand2::kS32, 0, 0, NULL },
     testInt(123),
     testInt(-345),
     testInt(+678),
@@ -1461,15 +1462,15 @@
     // logic
     testInt(1?2:3),
     testInt(0?2:3),
-    testInt(1&&2||3),
-    testInt(1&&0||3),
-    testInt(1&&0||0),
-    testInt(1||0&&3),
-    testInt(0||0&&3),
-    testInt(0||1&&3),
+    testInt((1&&2)||3),
+    testInt((1&&0)||3),
+    testInt((1&&0)||0),
+    testInt(1||(0&&3)),
+    testInt(0||(0&&3)),
+    testInt(0||(1&&3)),
     testInt(0&&1?2:3)
 #ifdef SK_CAN_USE_FLOAT
-    , {    "123.5", SkOperand2::kScalar, 0, SkIntToScalar(123) + SK_Scalar1/2 }
+    , {    "123.5", SkOperand2::kScalar, 0, SkIntToScalar(123) + SK_Scalar1/2, NULL }
 #endif
 };
 
diff --git a/src/svg/SkSVGParser.cpp b/src/svg/SkSVGParser.cpp
index df86178..f4ad198 100644
--- a/src/svg/SkSVGParser.cpp
+++ b/src/svg/SkSVGParser.cpp
@@ -76,8 +76,8 @@
 int SkSVGParser::findAttribute(SkSVGBase* element, const char* attrValue,
         size_t len, bool isPaint) {
     const SkSVGAttribute* attributes;
-    int count = element->getAttributes(&attributes);
-    int result = 0;
+    size_t count = element->getAttributes(&attributes);
+    size_t result = 0;
     while (result < count) {
         if (strncmp(attributes->fName, attrValue, len) == 0 && strlen(attributes->fName) == len) {
             SkASSERT(result == (attributes->fOffset - 
@@ -200,7 +200,7 @@
     } else if (fInSVG == false)
         return false;
     const char* nextColon = strchr(name, ':');
-    if (nextColon && nextColon - name < len)
+    if (nextColon && (size_t)(nextColon - name) < len)
         return false;
     SkSVGTypes type = GetType(name, len);
 //    SkASSERT(type >= 0);
diff --git a/src/utils/unix/SkOSWindow_Unix.cpp b/src/utils/unix/SkOSWindow_Unix.cpp
index 4ec0c74..ae881d5 100644
--- a/src/utils/unix/SkOSWindow_Unix.cpp
+++ b/src/utils/unix/SkOSWindow_Unix.cpp
@@ -76,7 +76,7 @@
     long event_mask = NoEventMask;
     XClientMessageEvent event;
     event.type = ClientMessage;
-    Atom myAtom;
+    Atom myAtom(0);
     event.message_type = myAtom;
     event.format = 32;
     event.data.l[0] = 0;
diff --git a/src/views/SkBorderView.cpp b/src/views/SkBorderView.cpp
index 3a9c449..74a2477 100644
--- a/src/views/SkBorderView.cpp
+++ b/src/views/SkBorderView.cpp
@@ -5,8 +5,10 @@
 #include "SkTime.h"
 #include "SkStackViewLayout.h"
 
-SkBorderView::SkBorderView() : fTop(SkIntToScalar(0)), fLeft(SkIntToScalar(0)),
-					fRight(SkIntToScalar(0)), fBottom(SkIntToScalar(0))
+SkBorderView::SkBorderView() : fLeft(SkIntToScalar(0)),
+                               fRight(SkIntToScalar(0)),
+                               fTop(SkIntToScalar(0)),
+                               fBottom(SkIntToScalar(0))
 {
 	fAnim.setHostEventSink(this);
 	init_skin_anim(kBorder_SkinEnum, &fAnim);
diff --git a/src/views/SkView.cpp b/src/views/SkView.cpp
index 7969d3d..1cd6339 100644
--- a/src/views/SkView.cpp
+++ b/src/views/SkView.cpp
@@ -552,7 +552,7 @@
 {
 	SkASSERT(child != this);
 
-	if (child == NULL || fFirstChild && fFirstChild->fPrevSibling == child)
+	if (child == NULL || (fFirstChild && fFirstChild->fPrevSibling == child))
 		goto DONE;
 
 	child->ref();
diff --git a/src/views/SkWidgetViews.cpp b/src/views/SkWidgetViews.cpp
index 109e620..2705307 100644
--- a/src/views/SkWidgetViews.cpp
+++ b/src/views/SkWidgetViews.cpp
@@ -117,7 +117,7 @@
 
 void SkWidgetView::setLabel(const char label[], size_t len)
 {
-	if (label == NULL && fLabel.size() != 0 || !fLabel.equals(label, len))
+	if ((label == NULL && fLabel.size() != 0) || !fLabel.equals(label, len))
 	{
 		SkString	tmp(label, len);
 
@@ -368,7 +368,7 @@
 		
 	};
 
-	for (int i = 0; i < SK_ARRAY_COUNT(gNames); i++)
+	for (size_t i = 0; i < SK_ARRAY_COUNT(gNames); i++)
 		if (!strcmp(gNames[i], name))
 			return SkWidgetFactory((SkWidgetEnum)i);