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 {