bool nsMediaFragmentURIParser::ParseNPT(nsDependentSubstring& aString, double& aStart, double& aEnd) { nsDependentSubstring original(aString); if (aString.Length() > 4 && aString[0] == 'n' && aString[1] == 'p' && aString[2] == 't' && aString[3] == ':') { aString.Rebind(aString, 4); } if (aString.Length() == 0) { return PR_FALSE; } double start = -1.0; double end = -1.0; if (ParseNPTTime(aString, start)) { aStart = start; } if (aString.Length() == 0) { return PR_TRUE; } if (aString[0] != ',') { aString.Rebind(original, 0); return PR_FALSE; } aString.Rebind(aString, 1); if (aString.Length() == 0) { aString.Rebind(original, 0); return PR_FALSE; } if (ParseNPTTime(aString, end)) { aEnd = end; } if (aString.Length() != 0) { aString.Rebind(original, 0); return PR_FALSE; } return PR_TRUE; }
bool nsMediaFragmentURIParser::ParseNPT(nsDependentSubstring aString) { nsDependentSubstring original(aString); if (aString.Length() > 4 && aString[0] == 'n' && aString[1] == 'p' && aString[2] == 't' && aString[3] == ':') { aString.Rebind(aString, 4); } if (aString.Length() == 0) { return false; } double start = -1.0; double end = -1.0; ParseNPTTime(aString, start); if (aString.Length() == 0) { mStart.construct(start); return true; } if (aString[0] != ',') { aString.Rebind(original, 0); return false; } aString.Rebind(aString, 1); if (aString.Length() == 0) { aString.Rebind(original, 0); return false; } ParseNPTTime(aString, end); if (end <= start || aString.Length() != 0) { aString.Rebind(original, 0); return false; } mStart.construct(start); mEnd.construct(end); return true; }