diff --git a/tests/PathOpsDebug.cpp b/tests/PathOpsDebug.cpp
index 507d865..263c37b 100755
--- a/tests/PathOpsDebug.cpp
+++ b/tests/PathOpsDebug.cpp
@@ -1066,7 +1066,7 @@
     const SkOpSpanBase* span = &fHead;
     do {
         const SkOpAngle* fAngle = span->fromAngle();
-        const SkOpAngle* tAngle = span->final() ? NULL : span->upCast()->toAngle();
+        const SkOpAngle* tAngle = span->final() ? nullptr : span->upCast()->toAngle();
         if (fAngle) {
             SkDebugf("  span=%d from=%d ", span->debugID(), fAngle->debugID());
             fAngle->dumpTo(this, tAngle);
@@ -1285,7 +1285,7 @@
             segment = segment->next();
         }
     } while ((contour = contour->next()));
-    return NULL;
+    return nullptr;
 }
 
 SkOpContour* SkOpGlobalState::debugContour(int id) {
@@ -1295,7 +1295,7 @@
             return contour;
         }
     } while ((contour = contour->next()));
-    return NULL;
+    return nullptr;
 }
 
 const SkOpPtT* SkOpGlobalState::debugPtT(int id) const {
@@ -1318,7 +1318,7 @@
             segment = segment->next();
         }
     } while ((contour = contour->next()));
-    return NULL;
+    return nullptr;
 }
 
 const SkOpSegment* SkOpGlobalState::debugSegment(int id) const {
@@ -1332,7 +1332,7 @@
             segment = segment->next();
         }
     } while ((contour = contour->next()));
-    return NULL;
+    return nullptr;
 }
 
 const SkOpSpanBase* SkOpGlobalState::debugSpan(int id) const {
@@ -1353,7 +1353,7 @@
             segment = segment->next();
         }
     } while ((contour = contour->next()));
-    return NULL;
+    return nullptr;
 }
 #endif
 
