Pass labels into KeyBuilder as string_view.

This will let us pass in string_views as labels even if they aren't
zero-terminated.

Change-Id: Iee941528e041531d5d63a05d760d1c77e9c7769d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/557099
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/KeyBuilder.h b/src/gpu/KeyBuilder.h
index b0848e4..a61197c 100644
--- a/src/gpu/KeyBuilder.h
+++ b/src/gpu/KeyBuilder.h
@@ -22,7 +22,7 @@
         SkASSERT(fBitsUsed == 0);
     }
 
-    virtual void addBits(uint32_t numBits, uint32_t val, const char* label) {
+    virtual void addBits(uint32_t numBits, uint32_t val, std::string_view label) {
         SkASSERT(numBits > 0 && numBits <= 32);
         SkASSERT(numBits == 32 || (val < (1u << numBits)));
 
@@ -40,18 +40,18 @@
         SkASSERT(fCurValue < (1u << fBitsUsed));
     }
 
-    void addBytes(uint32_t numBytes, const void* data, const char* label) {
+    void addBytes(uint32_t numBytes, const void* data, std::string_view label) {
         const uint8_t* bytes = reinterpret_cast<const uint8_t*>(data);
         for (; numBytes --> 0; bytes++) {
             this->addBits(8, *bytes, label);
         }
     }
 
-    void addBool(bool b, const char* label) {
+    void addBool(bool b, std::string_view label) {
         this->addBits(1, b, label);
     }
 
-    void add32(uint32_t v, const char* label = "unknown") {
+    void add32(uint32_t v, std::string_view label = "unknown") {
         this->addBits(32, v, label);
     }
 
@@ -77,9 +77,9 @@
 public:
     StringKeyBuilder(SkTArray<uint32_t, true>* data) : KeyBuilder(data) {}
 
-    void addBits(uint32_t numBits, uint32_t val, const char* label) override {
+    void addBits(uint32_t numBits, uint32_t val, std::string_view label) override {
         KeyBuilder::addBits(numBits, val, label);
-        fDescription.appendf("%s: %u\n", label, val);
+        fDescription.appendf("%.*s: %u\n", (int)label.size(), label.data(), val);
     }
 
     void appendComment(const char* comment) override {