Bug 1393235 - Fix improper usages of string functions. r=njn

This fixes usages of `Find`, `RFind` and the equality operator that kind of
work right now but will break with the proper type checking of a templatized
version of the string classes.

For `Find` and `RFind` it appears that `nsCString::(R)Find("foo", 0)` calls
were being coerced to the `Find(char*, bool, int, int)` versions. The intent was
probably to just start searching from position zero.

For the equality operator, the type of nullptr is nullptr_t rather than
char(16_t)* so we'd need to add an operator overload that takes nullptr_t. In
this case just using `IsVoid` is probably more appropriate.

--HG--
extra : rebase_source : 50f78519084012ca669da0a211c489520c11d6b6
This commit is contained in:
Eric Rahm 2017-08-22 19:30:46 -07:00
Родитель f648960668
Коммит 9398bd6f43
4 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -687,7 +687,7 @@ nsDefaultURIFixup::FixupURIProtocol(const nsACString& aURIString,
// no-scheme.com/query?foo=http://www.foo.com // no-scheme.com/query?foo=http://www.foo.com
// user:pass@no-scheme.com // user:pass@no-scheme.com
// //
int32_t schemeDelim = uriString.Find("://", 0); int32_t schemeDelim = uriString.Find("://");
int32_t firstDelim = uriString.FindCharInSet("/:"); int32_t firstDelim = uriString.FindCharInSet("/:");
if (schemeDelim <= 0 || if (schemeDelim <= 0 ||
(firstDelim != -1 && schemeDelim > firstDelim)) { (firstDelim != -1 && schemeDelim > firstDelim)) {

Просмотреть файл

@ -232,7 +232,7 @@ ChromiumCDMChild::OnResolveNewSessionPromiseInternal(uint32_t aPromiseId,
// a session it calls OnResolveNewSessionPromise with nullptr as the sessionId. // a session it calls OnResolveNewSessionPromise with nullptr as the sessionId.
// We can safely assume this means that we have failed to load a session // We can safely assume this means that we have failed to load a session
// as the other methods specify calling 'OnRejectPromise' when they fail. // as the other methods specify calling 'OnRejectPromise' when they fail.
bool loadSuccessful = aSessionId != nullptr; bool loadSuccessful = !aSessionId.IsEmpty();
GMP_LOG("ChromiumCDMChild::OnResolveNewSessionPromise(pid=%u, sid=%s) " GMP_LOG("ChromiumCDMChild::OnResolveNewSessionPromise(pid=%u, sid=%s) "
"resolving %s load session ", "resolving %s load session ",
aPromiseId, aPromiseId,

Просмотреть файл

@ -1939,7 +1939,7 @@ PlacesSQLQueryBuilder::Where()
// If we used WHERE already, we inject the conditions // If we used WHERE already, we inject the conditions
// in place of {ADDITIONAL_CONDITIONS} // in place of {ADDITIONAL_CONDITIONS}
if (mQueryString.Find("{ADDITIONAL_CONDITIONS}", 0) != kNotFound) { if (mQueryString.Find("{ADDITIONAL_CONDITIONS}") != kNotFound) {
nsAutoCString innerCondition; nsAutoCString innerCondition;
// If we have condition AND it // If we have condition AND it
if (!mConditions.IsEmpty()) { if (!mConditions.IsEmpty()) {

Просмотреть файл

@ -992,7 +992,7 @@ Classifier::ScanStoreDir(nsIFile* aDirectory, nsTArray<nsCString>& aTables)
// Both v2 and v4 contain .pset file // Both v2 and v4 contain .pset file
nsCString suffix(NS_LITERAL_CSTRING(".pset")); nsCString suffix(NS_LITERAL_CSTRING(".pset"));
int32_t dot = leafName.RFind(suffix, 0); int32_t dot = leafName.RFind(suffix);
if (dot != -1) { if (dot != -1) {
leafName.Cut(dot, suffix.Length()); leafName.Cut(dot, suffix.Length());
aTables.AppendElement(leafName); aTables.AppendElement(leafName);
@ -1582,7 +1582,7 @@ Classifier::LoadMetadata(nsIFile* aDirectory, nsACString& aResult)
rv = file->GetNativeLeafName(tableName); rv = file->GetNativeLeafName(tableName);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
int32_t dot = tableName.RFind(METADATA_SUFFIX, 0); int32_t dot = tableName.RFind(METADATA_SUFFIX);
if (dot == -1) { if (dot == -1) {
continue; continue;
} }