simple patch to always init SkTextBlob uniqueID

BUG=skia:

Review URL: https://codereview.chromium.org/1036613002
diff --git a/include/core/SkTextBlob.h b/include/core/SkTextBlob.h
index 6970e6d..d31ec5c 100644
--- a/include/core/SkTextBlob.h
+++ b/include/core/SkTextBlob.h
@@ -30,7 +30,7 @@
     /**
      *  Return a non-zero, unique value representing the text blob.
      */
-    uint32_t uniqueID() const;
+    uint32_t uniqueID() const { return fUniqueID; }
 
     /**
      *  Serialize to a buffer.
@@ -98,7 +98,7 @@
 
     const int        fRunCount;
     const SkRect     fBounds;
-    mutable uint32_t fUniqueID;
+    const uint32_t fUniqueID;
 
     SkDEBUGCODE(size_t fStorageSize;)
 
diff --git a/src/core/SkTextBlob.cpp b/src/core/SkTextBlob.cpp
index bf62032..3ffc41e 100644
--- a/src/core/SkTextBlob.cpp
+++ b/src/core/SkTextBlob.cpp
@@ -108,9 +108,19 @@
     SkDEBUGCODE(unsigned fMagic;)
 };
 
+static int32_t gNextID = 1;
+static int32_t next_id() {
+    int32_t id;
+    do {
+        id = sk_atomic_inc(&gNextID);
+    } while (id == SK_InvalidGenID);
+    return id;
+}
+
 SkTextBlob::SkTextBlob(int runCount, const SkRect& bounds)
     : fRunCount(runCount)
-    , fBounds(bounds) {
+    , fBounds(bounds)
+    , fUniqueID(next_id()) {
 }
 
 SkTextBlob::~SkTextBlob() {
@@ -123,17 +133,6 @@
     }
 }
 
-uint32_t SkTextBlob::uniqueID() const {
-    static int32_t  gTextBlobGenerationID; // = 0;
-
-    // loop in case our global wraps around, as we never want to return SK_InvalidGenID
-    while (SK_InvalidGenID == fUniqueID) {
-        fUniqueID = sk_atomic_inc(&gTextBlobGenerationID) + 1;
-    }
-
-    return fUniqueID;
-}
-
 void SkTextBlob::flatten(SkWriteBuffer& buffer) const {
     int runCount = fRunCount;