Use std::string_view
in a few more places
This commit is contained in:
parent
2853ba4ab2
commit
f6f01416b7
|
@ -76,7 +76,7 @@ struct GitHubInput : Input
|
||||||
readFile(
|
readFile(
|
||||||
store->toRealPath(
|
store->toRealPath(
|
||||||
downloadFile(store, url, "source", false).storePath)));
|
downloadFile(store, url, "source", false).storePath)));
|
||||||
rev = Hash(json["sha"], htSHA1);
|
rev = Hash(std::string { json["sha"] }, htSHA1);
|
||||||
debug("HEAD revision for '%s' is %s", url, rev->gitRev());
|
debug("HEAD revision for '%s' is %s", url, rev->gitRev());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -779,7 +779,7 @@ bool ValidPathInfo::isContentAddressed(const Store & store) const
|
||||||
};
|
};
|
||||||
|
|
||||||
if (hasPrefix(ca, "text:")) {
|
if (hasPrefix(ca, "text:")) {
|
||||||
Hash hash(std::string(ca, 5));
|
Hash hash(ca.substr(5));
|
||||||
if (store.makeTextPath(path.name(), hash, references) == path)
|
if (store.makeTextPath(path.name(), hash, references) == path)
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
|
@ -788,7 +788,7 @@ bool ValidPathInfo::isContentAddressed(const Store & store) const
|
||||||
|
|
||||||
else if (hasPrefix(ca, "fixed:")) {
|
else if (hasPrefix(ca, "fixed:")) {
|
||||||
FileIngestionMethod recursive { ca.compare(6, 2, "r:") == 0 };
|
FileIngestionMethod recursive { ca.compare(6, 2, "r:") == 0 };
|
||||||
Hash hash(std::string(ca, recursive == FileIngestionMethod::Recursive ? 8 : 6));
|
Hash hash(ca.substr(recursive == FileIngestionMethod::Recursive ? 8 : 6));
|
||||||
auto refs = cloneStorePathSet(references);
|
auto refs = cloneStorePathSet(references);
|
||||||
bool hasSelfReference = false;
|
bool hasSelfReference = false;
|
||||||
if (refs.count(path)) {
|
if (refs.count(path)) {
|
||||||
|
|
|
@ -125,7 +125,7 @@ std::string Hash::to_string(Base base, bool includeType) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Hash::Hash(const std::string & s, HashType type)
|
Hash::Hash(std::string_view s, HashType type)
|
||||||
: type(type)
|
: type(type)
|
||||||
{
|
{
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
|
@ -194,7 +194,7 @@ Hash::Hash(const std::string & s, HashType type)
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (isSRI || size == base64Len()) {
|
else if (isSRI || size == base64Len()) {
|
||||||
auto d = base64Decode(std::string(s, pos));
|
auto d = base64Decode(s.substr(pos));
|
||||||
if (d.size() != hashSize)
|
if (d.size() != hashSize)
|
||||||
throw BadHash("invalid %s hash '%s'", isSRI ? "SRI" : "base-64", s);
|
throw BadHash("invalid %s hash '%s'", isSRI ? "SRI" : "base-64", s);
|
||||||
assert(hashSize);
|
assert(hashSize);
|
||||||
|
|
|
@ -42,7 +42,7 @@ struct Hash
|
||||||
Subresource Integrity hash expression). If the 'type' argument
|
Subresource Integrity hash expression). If the 'type' argument
|
||||||
is htUnknown, then the hash type must be specified in the
|
is htUnknown, then the hash type must be specified in the
|
||||||
string. */
|
string. */
|
||||||
Hash(const std::string & s, HashType type = htUnknown);
|
Hash(std::string_view s, HashType type = htUnknown);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
|
|
|
@ -1314,7 +1314,7 @@ bool statusOk(int status)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool hasPrefix(const string & s, const string & prefix)
|
bool hasPrefix(std::string_view s, std::string_view prefix)
|
||||||
{
|
{
|
||||||
return s.compare(0, prefix.size(), prefix) == 0;
|
return s.compare(0, prefix.size(), prefix) == 0;
|
||||||
}
|
}
|
||||||
|
@ -1408,7 +1408,7 @@ std::string filterANSIEscapes(const std::string & s, bool filterAll, unsigned in
|
||||||
static char base64Chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
static char base64Chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||||
|
|
||||||
|
|
||||||
string base64Encode(const string & s)
|
string base64Encode(std::string_view s)
|
||||||
{
|
{
|
||||||
string res;
|
string res;
|
||||||
int data = 0, nbits = 0;
|
int data = 0, nbits = 0;
|
||||||
|
@ -1429,7 +1429,7 @@ string base64Encode(const string & s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string base64Decode(const string & s)
|
string base64Decode(std::string_view s)
|
||||||
{
|
{
|
||||||
bool init = false;
|
bool init = false;
|
||||||
char decode[256];
|
char decode[256];
|
||||||
|
|
|
@ -416,7 +416,7 @@ template<class N> bool string2Float(const string & s, N & n)
|
||||||
|
|
||||||
|
|
||||||
/* Return true iff `s' starts with `prefix'. */
|
/* Return true iff `s' starts with `prefix'. */
|
||||||
bool hasPrefix(const string & s, const string & prefix);
|
bool hasPrefix(std::string_view s, std::string_view prefix);
|
||||||
|
|
||||||
|
|
||||||
/* Return true iff `s' ends in `suffix'. */
|
/* Return true iff `s' ends in `suffix'. */
|
||||||
|
@ -455,8 +455,8 @@ std::string filterANSIEscapes(const std::string & s,
|
||||||
|
|
||||||
|
|
||||||
/* Base64 encoding/decoding. */
|
/* Base64 encoding/decoding. */
|
||||||
string base64Encode(const string & s);
|
string base64Encode(std::string_view s);
|
||||||
string base64Decode(const string & s);
|
string base64Decode(std::string_view s);
|
||||||
|
|
||||||
|
|
||||||
/* Get a value for the specified key from an associate container. */
|
/* Get a value for the specified key from an associate container. */
|
||||||
|
|
Loading…
Reference in a new issue