Fix error in StringRef equality

Regression in [0] wasn't correct as it's important for empty strings
to be equal to nullptr.

[0]: 9f283bee7e
This commit is contained in:
Campbell Barton 2023-01-11 20:00:59 +11:00
parent 68c6fc6d38
commit d3e8d63a8c
1 changed files with 7 additions and 3 deletions

View File

@ -612,9 +612,13 @@ constexpr bool operator==(StringRef a, StringRef b)
* which would results in an ASAN warning. */
return true;
}
if (!a.data() || !b.data()) {
/* Account for a single value being null, resulting in an ASAN warning. */
return false;
/* Account for a single value being null, resulting in an ASAN warning.
* Ensure an empty string is equal to a string with a null pointer. */
if (!a.data()) {
return *b.data() == '\0';
}
if (!b.data()) {
return *a.data() == '\0';
}
return STREQLEN(a.data(), b.data(), size_t(a.size()));
}