diff --git a/bench/PatchBench.cpp b/bench/PatchBench.cpp
index 097e68e..a6f5faa 100644
--- a/bench/PatchBench.cpp
+++ b/bench/PatchBench.cpp
@@ -76,7 +76,7 @@
         };
         const SkPoint pts[] = { { 200.f / 4.f, 0.f }, { 3.f * 200.f / 4, 200.f } };
 
-        return SkGradientShader::CreateLinear(pts, colors, NULL,
+        return SkGradientShader::CreateLinear(pts, colors, nullptr,
                                               SK_ARRAY_COUNT(colors),
                                               SkShader::kMirror_TileMode);
     }
@@ -118,7 +118,7 @@
                 fPaint.setShader(this->createShader())->unref();
                 break;
             default:
-                fPaint.setShader(NULL);
+                fPaint.setShader(nullptr);
                 break;
         }
     }
@@ -128,16 +128,16 @@
         for (int i = 0; i < loops; i++) {
             switch (fVertexMode) {
                 case kNone_VertexMode:
-                    canvas->drawPatch(fCubics, NULL, NULL, NULL, fPaint);
+                    canvas->drawPatch(fCubics, nullptr, nullptr, nullptr, fPaint);
                     break;
                 case kColors_VertexMode:
-                    canvas->drawPatch(fCubics, fColors, NULL, NULL, fPaint);
+                    canvas->drawPatch(fCubics, fColors, nullptr, nullptr, fPaint);
                     break;
                 case kTexCoords_VertexMode:
-                    canvas->drawPatch(fCubics, NULL, fTexCoords, NULL, fPaint);
+                    canvas->drawPatch(fCubics, nullptr, fTexCoords, nullptr, fPaint);
                     break;
                 case kBoth_VertexMode:
-                    canvas->drawPatch(fCubics, fColors, fTexCoords, NULL, fPaint);
+                    canvas->drawPatch(fCubics, fColors, fTexCoords, nullptr, fPaint);
                     break;
                 default:
                     break;
