disallow -4 pointer

A user's homegrown unsigned integer overflow tool
complains if a nullptr is decremented.
The conicWeight pointer likes to predecrement
before walking, but this is unnecessary if
its value is nullptr.

R=reed@google.com
BUG=skia:5415
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2061833005

Review-Url: https://codereview.chromium.org/2061833005
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 1fb3e11..3cbc76a 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -1783,7 +1783,10 @@
     fPts = path.fPathRef->points();
     fVerbs = path.fPathRef->verbs();
     fVerbStop = path.fPathRef->verbsMemBegin();
-    fConicWeights = path.fPathRef->conicWeights() - 1; // begin one behind
+    fConicWeights = path.fPathRef->conicWeights();
+    if (fConicWeights) {
+      fConicWeights -= 1;  // begin one behind
+    }
     fLastPt.fX = fLastPt.fY = 0;
     fMoveTo.fX = fMoveTo.fY = 0;
     fForceClose = SkToU8(forceClose);
diff --git a/src/core/SkPathRef.cpp b/src/core/SkPathRef.cpp
index 06a1519..e5efefc 100644
--- a/src/core/SkPathRef.cpp
+++ b/src/core/SkPathRef.cpp
@@ -619,7 +619,10 @@
     fPts = path.points();
     fVerbs = path.verbs();
     fVerbStop = path.verbsMemBegin();
-    fConicWeights = path.conicWeights() - 1; // begin one behind
+    fConicWeights = path.conicWeights();
+    if (fConicWeights) {
+      fConicWeights -= 1;  // begin one behind
+    }
 }
 
 uint8_t SkPathRef::Iter::next(SkPoint pts[4]) {