<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[277246] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/277246">277246</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2021-05-09 11:31:34 -0700 (Sun, 09 May 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove uses of the String::toInt family of functions from the WebCore/platform directory
https://bugs.webkit.org/show_bug.cgi?id=225575

Reviewed by Sam Weinig.

* platform/DateComponents.cpp: Tweak a comment on the local parseInt function here
that should likely be consolidated with parseInteger at some point.

* platform/Length.cpp:
(WebCore::parseLength): Use parseInteger<int> instead of charactersToIntStrict.

* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::CDMPrivateClearKey::sanitizeSessionId const): Use parseInteger<uint32_t>
instead of String::toUIntStrict.

* platform/graphics/HEVCUtilities.cpp:
(WebCore::parseHEVCCodecParameters): Use parseInteger<uint8/32_t> instead of
toIntegralType<uint8/32_t>.
(WebCore::parseDoViCodecParameters): Ditto.
* platform/graphics/VP9Utilities.cpp:
(WebCore::parseVPCodecParameters): Ditto.

* platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem): Use parseInteger<int>
instead of String::toInt. There's no need for the "allow trailing junk" here
because a regular expression is used to check format before we call parseInteger.
Also removed an unnecessary empty string check, since the regular expression
match check will fail on an empty string.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected): Use
parseIntegerAllowingTrailingJunk<uint64_t> instead ot toUInt64.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::flush): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const): Ditto.

* platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::parseStringArrayFromDictionaryToUInt16Vector): Use
parseInteger<uint16_t> instead of toIntegralType<uint16_t>. We could also
consider using -[NSString intValue] here with some range checking instead
of converting to WTF::String.

* platform/mediastream/mac/ScreenDisplayCapturerMac.mm:
(WebCore::ScreenDisplayCapturerMac::create): Use parseInteger<uint32_t>
instead of String::toUIntStrict.
(WebCore::ScreenDisplayCapturerMac::screenCaptureDeviceWithPersistentID): Ditto.
* platform/mediastream/mac/WindowDisplayCapturerMac.mm:
(WebCore::WindowDisplayCapturerMac::create): Ditto.
(WebCore::WindowDisplayCapturerMac::windowCaptureDeviceWithPersistentID): Ditto.

* platform/network/HTTPParsers.cpp:
(WebCore::parseRange): Use parseInteger<long long> instead of
String::toInt64Strict. Also use StringView so we don't allocate substrings on
the heap just to parse integers within an existing string. And removed unneeded
call to stripWhiteSpace in one place since parseInteger already allows leading
and trailing spaces, and in another case where we need to strip because of an
empty string check, used stripLeadingAndTrailingHTTPSpaces instead.

* platform/network/ParsedContentRange.cpp:
(WebCore::parseContentRange): Use parseInteger<int64_t> instead of
StringView::toInt64Strict.

* platform/network/ParsedRequestRange.cpp:
(WebCore::ParsedRequestRange::parse): Use parseInteger<uint64_t> instead of
StringView::toUInt64Strict.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformDateComponentscpp">trunk/Source/WebCore/platform/DateComponents.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLengthcpp">trunk/Source/WebCore/platform/Length.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformencryptedmediaclearkeyCDMClearKeycpp">trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsHEVCUtilitiescpp">trunk/Source/WebCore/platform/graphics/HEVCUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsVP9Utilitiescpp">trunk/Source/WebCore/platform/graphics/VP9Utilities.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationCDMPrivateMediaSourceAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaHEVCUtilitiesCocoamm">trunk/Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkParsedRequestRangecpp">trunk/Source/WebCore/platform/network/ParsedRequestRange.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/ChangeLog      2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -1,5 +1,147 @@
</span><span class="cx"> 2021-05-09  Darin Adler  <darin@apple.com>
</span><span class="cx"> 
</span><ins>+        Remove uses of the String::toInt family of functions from the WebCore/platform directory
+        https://bugs.webkit.org/show_bug.cgi?id=225575
+
+        Reviewed by Sam Weinig.
+
+        * platform/DateComponents.cpp: Tweak a comment on the local parseInt function here
+        that should likely be consolidated with parseInteger at some point.
+
+        * platform/Length.cpp:
+        (WebCore::parseLength): Use parseInteger<int> instead of charactersToIntStrict.
+
+        * platform/encryptedmedia/clearkey/CDMClearKey.cpp:
+        (WebCore::CDMPrivateClearKey::sanitizeSessionId const): Use parseInteger<uint32_t>
+        instead of String::toUIntStrict.
+
+        * platform/graphics/HEVCUtilities.cpp:
+        (WebCore::parseHEVCCodecParameters): Use parseInteger<uint8/32_t> instead of
+        toIntegralType<uint8/32_t>.
+        (WebCore::parseDoViCodecParameters): Ditto.
+        * platform/graphics/VP9Utilities.cpp:
+        (WebCore::parseVPCodecParameters): Ditto.
+
+        * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
+        (WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem): Use parseInteger<int>
+        instead of String::toInt. There's no need for the "allow trailing junk" here
+        because a regular expression is used to check format before we call parseInteger.
+        Also removed an unnecessary empty string check, since the regular expression
+        match check will fail on an empty string.
+
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected): Use
+        parseIntegerAllowingTrailingJunk<uint64_t> instead ot toUInt64.
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::flush): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const): Ditto.
+
+        * platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
+        (WebCore::parseStringArrayFromDictionaryToUInt16Vector): Use
+        parseInteger<uint16_t> instead of toIntegralType<uint16_t>. We could also
+        consider using -[NSString intValue] here with some range checking instead
+        of converting to WTF::String.
+        
+        * platform/mediastream/mac/ScreenDisplayCapturerMac.mm:
+        (WebCore::ScreenDisplayCapturerMac::create): Use parseInteger<uint32_t>
+        instead of String::toUIntStrict.
+        (WebCore::ScreenDisplayCapturerMac::screenCaptureDeviceWithPersistentID): Ditto.
+        * platform/mediastream/mac/WindowDisplayCapturerMac.mm:
+        (WebCore::WindowDisplayCapturerMac::create): Ditto.
+        (WebCore::WindowDisplayCapturerMac::windowCaptureDeviceWithPersistentID): Ditto.
+
+        * platform/network/HTTPParsers.cpp:
+        (WebCore::parseRange): Use parseInteger<long long> instead of
+        String::toInt64Strict. Also use StringView so we don't allocate substrings on
+        the heap just to parse integers within an existing string. And removed unneeded
+        call to stripWhiteSpace in one place since parseInteger already allows leading
+        and trailing spaces, and in another case where we need to strip because of an
+        empty string check, used stripLeadingAndTrailingHTTPSpaces instead.
+
+        * platform/network/ParsedContentRange.cpp:
+        (WebCore::parseContentRange): Use parseInteger<int64_t> instead of
+        StringView::toInt64Strict.
+
+        * platform/network/ParsedRequestRange.cpp:
+        (WebCore::ParsedRequestRange::parse): Use parseInteger<uint64_t> instead of
+        StringView::toUInt64Strict.
+
+2021-05-08  Darin Adler  <darin@apple.com>
+
+        Remove uses of the String::toInt family of functions from the WebCore/platform directory
+        https://bugs.webkit.org/show_bug.cgi?id=225575
+
+        Reviewed by Sam Weinig.
+
+        * platform/DateComponents.cpp: Tweak a comment on the local parseInt function here
+        that should likely be consolidated with parseInteger at some point.
+
+        * platform/Length.cpp:
+        (WebCore::parseLength): Use parseInteger<int> instead of charactersToIntStrict.
+
+        * platform/encryptedmedia/clearkey/CDMClearKey.cpp:
+        (WebCore::CDMPrivateClearKey::sanitizeSessionId const): Use parseInteger<uint32_t>
+        instead of String::toUIntStrict.
+
+        * platform/graphics/HEVCUtilities.cpp:
+        (WebCore::parseHEVCCodecParameters): Use parseInteger<uint8/32_t> instead of
+        toIntegralType<uint8/32_t>.
+        (WebCore::parseDoViCodecParameters): Ditto.
+        * platform/graphics/VP9Utilities.cpp:
+        (WebCore::parseVPCodecParameters): Ditto.
+
+        * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
+        (WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem): Use parseInteger<int>
+        instead of String::toInt. There's no need for the "allow trailing junk" here
+        because a regular expression is used to check format before we call parseInteger.
+        Also removed an unnecessary empty string check, since the regular expression
+        match check will fail on an empty string.
+
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected): Use
+        parseIntegerAllowingTrailingJunk<uint64_t> instead ot toUInt64.
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::flush): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Ditto.
+        (WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const): Ditto.
+
+        * platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
+        (WebCore::parseStringArrayFromDictionaryToUInt16Vector): Use
+        parseInteger<uint16_t> instead of toIntegralType<uint16_t>. We could also
+        consider using -[NSString intValue] here with some range checking instead
+        of converting to WTF::String.
+        
+        * platform/mediastream/mac/ScreenDisplayCapturerMac.mm:
+        (WebCore::ScreenDisplayCapturerMac::create): Use parseInteger<uint32_t>
+        instead of String::toUIntStrict.
+        (WebCore::ScreenDisplayCapturerMac::screenCaptureDeviceWithPersistentID): Ditto.
+        * platform/mediastream/mac/WindowDisplayCapturerMac.mm:
+        (WebCore::WindowDisplayCapturerMac::create): Ditto.
+        (WebCore::WindowDisplayCapturerMac::windowCaptureDeviceWithPersistentID): Ditto.
+
+        * platform/network/HTTPParsers.cpp:
+        (WebCore::parseRange): Use parseInteger<long long> instead of
+        String::toInt64Strict. Also use StringView so we don't allocate substrings on
+        the heap just to parse integers within an existing string. And removed unneeded
+        call to stripWhiteSpace in one place since parseInteger already allows leading
+        and trailing spaces, and in another case where we need to strip because of an
+        empty string check, used stripLeadingAndTrailingHTTPSpaces instead.
+
+        * platform/network/ParsedContentRange.cpp:
+        (WebCore::parseContentRange): Use parseInteger<int64_t> instead of
+        StringView::toInt64Strict.
+
+        * platform/network/ParsedRequestRange.cpp:
+        (WebCore::ParsedRequestRange::parse): Use parseInteger<uint64_t> instead of
+        StringView::toUInt64Strict.
+
+2021-05-09  Darin Adler  <darin@apple.com>
+
</ins><span class="cx">         Remove uses of the String::toInt family of functions from WebCore/html and similar directories
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=225577
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformDateComponentscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/DateComponents.cpp (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/DateComponents.cpp 2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/DateComponents.cpp    2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     return buffer.position() - begin;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-// Very strict integer parser. Do not allow leading or trailing whitespace unlike charactersToIntStrict().
</del><ins>+// Differences from parseInteger<int>: Takes StringParsingBuffer. Does not allow leading or trailing spaces. Does not allow leading "+".
</ins><span class="cx"> template<typename CharacterType> static Optional<int> parseInt(StringParsingBuffer<CharacterType>& buffer, unsigned maximumNumberOfDigitsToParse)
</span><span class="cx"> {
</span><span class="cx">     if (maximumNumberOfDigitsToParse > buffer.lengthRemaining() || !maximumNumberOfDigitsToParse)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLengthcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Length.cpp (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Length.cpp 2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/Length.cpp    2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include <wtf/MallocPtr.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx"> #include <wtf/StdLibExtras.h>
</span><ins>+#include <wtf/text/StringToIntegerConversion.h>
</ins><span class="cx"> #include <wtf/text/StringView.h>
</span><span class="cx"> #include <wtf/text/TextStream.h>
</span><span class="cx"> 
</span><span class="lines">@@ -67,14 +68,11 @@
</span><span class="cx">             return Length(r, LengthType::Percent);
</span><span class="cx">         return Length(1, LengthType::Relative);
</span><span class="cx">     }
</span><del>-    int r = charactersToIntStrict(data, intLength, &ok);
-    if (next == '*') {
-        if (ok)
-            return Length(r, LengthType::Relative);
-        return Length(1, LengthType::Relative);
-    }
-    if (ok)
-        return Length(r, LengthType::Fixed);
</del><ins>+    auto r = parseInteger<int>({ data, intLength });
+    if (next == '*')
+        return Length(r.valueOr(1), LengthType::Relative);
+    if (r)
+        return Length(*r, LengthType::Fixed);
</ins><span class="cx">     return Length(0, LengthType::Relative);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformencryptedmediaclearkeyCDMClearKeycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp    2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp       2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> #include <wtf/MainThread.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx"> #include <wtf/text/Base64.h>
</span><ins>+#include <wtf/text/StringToIntegerConversion.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -415,9 +416,7 @@
</span><span class="cx"> Optional<String> CDMPrivateClearKey::sanitizeSessionId(const String& sessionId) const
</span><span class="cx"> {
</span><span class="cx">     // Validate the session ID string as an 32-bit integer.
</span><del>-    bool ok;
-    sessionId.toUIntStrict(&ok);
-    if (!ok)
</del><ins>+    if (!parseInteger<uint32_t>(sessionId))
</ins><span class="cx">         return WTF::nullopt;
</span><span class="cx">     return sessionId;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsHEVCUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/HEVCUtilities.cpp (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/HEVCUtilities.cpp 2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/graphics/HEVCUtilities.cpp    2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -64,10 +64,10 @@
</span><span class="cx">         profileSpace = profileSpace.substring(1);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool isValidProfileIDC = false;
-    parameters.generalProfileIDC = toIntegralType<uint8_t>(profileSpace, &isValidProfileIDC);
-    if (!isValidProfileIDC)
</del><ins>+    auto profileIDC = parseInteger<uint8_t>(profileSpace);
+    if (!profileIDC)
</ins><span class="cx">         return WTF::nullopt;
</span><ins>+    parameters.generalProfileIDC = *profileIDC;
</ins><span class="cx"> 
</span><span class="cx">     if (++nextElement == codecSplit.end())
</span><span class="cx">         return WTF::nullopt;
</span><span class="lines">@@ -74,11 +74,10 @@
</span><span class="cx"> 
</span><span class="cx">     // Second element: 32 bit of General Profile Compatibility Flags, in reverse bit order,
</span><span class="cx">     // in hex with leading zeros omitted.
</span><del>-    auto compatibilityFlags = *nextElement;
-    bool isValidCompatibilityFlags = false;
-    parameters.generalProfileCompatibilityFlags = toIntegralType<uint32_t>(compatibilityFlags, &isValidCompatibilityFlags, 16);
-    if (!isValidCompatibilityFlags)
</del><ins>+    auto compatibilityFlags = parseInteger<uint32_t>(*nextElement, 16);
+    if (!compatibilityFlags)
</ins><span class="cx">         return WTF::nullopt;
</span><ins>+    parameters.generalProfileCompatibilityFlags = *compatibilityFlags;
</ins><span class="cx"> 
</span><span class="cx">     if (++nextElement == codecSplit.end())
</span><span class="cx">         return WTF::nullopt;
</span><span class="lines">@@ -90,10 +89,10 @@
</span><span class="cx">     if (firstCharacter != 'L' && firstCharacter != 'H')
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><del>-    bool isValidGeneralLevelIDC = false;
-    parameters.generalLevelIDC = toIntegralType<uint8_t>(generalTier.substring(1), &isValidGeneralLevelIDC);
-    if (!isValidGeneralLevelIDC)
</del><ins>+    auto generalLevelIDC = parseInteger<uint8_t>(generalTier.substring(1));
+    if (!generalLevelIDC)
</ins><span class="cx">         return WTF::nullopt;
</span><ins>+    parameters.generalLevelIDC = *generalLevelIDC;
</ins><span class="cx"> 
</span><span class="cx">     // Optional fourth and remaining elements: a sequence of 6 1-byte constraint flags, each byte encoded
</span><span class="cx">     // in hex, and separated by a period, with trailing zero bytes omitted.
</span><span class="lines">@@ -100,9 +99,7 @@
</span><span class="cx">     for (unsigned i = 0; i < 6; ++i) {
</span><span class="cx">         if (++nextElement == codecSplit.end())
</span><span class="cx">             break;
</span><del>-        bool isValidFlag = false;
-        toIntegralType<uint8_t>(*nextElement, &isValidFlag, 16);
-        if (!isValidFlag)
</del><ins>+        if (!parseInteger<uint8_t>(*nextElement, 16))
</ins><span class="cx">             return WTF::nullopt;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -198,13 +195,13 @@
</span><span class="cx">     if (!profileID.length())
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><del>-    bool isIntegral = false;
</del><span class="cx">     auto firstCharacter = profileID[0];
</span><span class="cx">     // Profile definition can either be numeric or alpha:
</span><span class="cx">     if (firstCharacter == '0') {
</span><del>-        parameters.bitstreamProfileID = toIntegralType<uint8_t>(profileID, &isIntegral, 10);
-        if (!isIntegral)
</del><ins>+        auto bitstreamProfileID = parseInteger<uint8_t>(profileID);
+        if (!bitstreamProfileID)
</ins><span class="cx">             return WTF::nullopt;
</span><ins>+        parameters.bitstreamProfileID = *bitstreamProfileID;
</ins><span class="cx">     } else {
</span><span class="cx">         auto bitstreamProfileID = profileIDForAlphabeticDoViProfile(codecView.left(5 + profileID.length()));
</span><span class="cx">         if (!bitstreamProfileID)
</span><span class="lines">@@ -221,14 +218,11 @@
</span><span class="cx">     if (++nextElement == codecSplit.end())
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><del>-    auto levelID = *nextElement;
-    if (!levelID.length())
</del><ins>+    auto bitstreamLevelID = parseInteger<uint8_t>(*nextElement);
+    if (!bitstreamLevelID)
</ins><span class="cx">         return WTF::nullopt;
</span><ins>+    parameters.bitstreamLevelID = *bitstreamLevelID;
</ins><span class="cx"> 
</span><del>-    parameters.bitstreamLevelID = toIntegralType<uint8_t>(levelID, &isIntegral, 10);
-    if (!isIntegral)
-        return WTF::nullopt;
-
</del><span class="cx">     auto maximumLevelID = maximumLevelIDForDoViProfileID(parameters.bitstreamProfileID);
</span><span class="cx">     if (!maximumLevelID || parameters.bitstreamLevelID > *maximumLevelID)
</span><span class="cx">         return WTF::nullopt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsVP9Utilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/VP9Utilities.cpp (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/VP9Utilities.cpp  2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/graphics/VP9Utilities.cpp     2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><span class="cx">     // First element: profile. Legal values are 0-3.
</span><del>-    auto profile = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto profile = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!profile || *profile > 3)
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.profile = *profile;
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><span class="cx">     // Second element: level. Legal values are enumerated in validVPLevels above.
</span><del>-    auto level = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto level = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!level || !isValidVPLevel(*level))
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.level = *level;
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><span class="cx">     // Third element: bitDepth. Legal values are 8, 10, and 12.
</span><del>-    auto bitDepth = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto bitDepth = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!bitDepth || (*bitDepth != 8 && *bitDepth != 10 && *bitDepth != 12))
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.bitDepth = *bitDepth;
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx">         return configuration;
</span><span class="cx"> 
</span><span class="cx">     // Fourth element: chromaSubsampling. Legal values are 0-3.
</span><del>-    auto chromaSubsampling = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto chromaSubsampling = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!chromaSubsampling || *chromaSubsampling > VPConfigurationChromaSubsampling::Subsampling_444)
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.chromaSubsampling = *chromaSubsampling;
</span><span class="lines">@@ -191,9 +191,9 @@
</span><span class="cx">     if (++nextElement == codecSplit.end())
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><del>-    // Fifth element: colorPrimaries. Legal values are defined by  ISO/IEC 23001-8:2016, superceded
</del><ins>+    // Fifth element: colorPrimaries. Legal values are defined by ISO/IEC 23001-8:2016, superseded
</ins><span class="cx">     // by ISO/IEC 23091-2:2019.
</span><del>-    auto colorPrimaries = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto colorPrimaries = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!colorPrimaries || !isValidVPColorPrimaries(*colorPrimaries))
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.colorPrimaries = *colorPrimaries;
</span><span class="lines">@@ -201,9 +201,9 @@
</span><span class="cx">     if (++nextElement == codecSplit.end())
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><del>-    // Sixth element: transferCharacteristics. Legal values are defined by  ISO/IEC 23001-8:2016, superceded
</del><ins>+    // Sixth element: transferCharacteristics. Legal values are defined by ISO/IEC 23001-8:2016, superseded
</ins><span class="cx">     // by ISO/IEC 23091-2:2019.
</span><del>-    auto transferCharacteristics = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto transferCharacteristics = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!transferCharacteristics || !isValidVPTransferCharacteristics(*transferCharacteristics))
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.transferCharacteristics = *transferCharacteristics;
</span><span class="lines">@@ -211,9 +211,9 @@
</span><span class="cx">     if (++nextElement == codecSplit.end())
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><del>-    // Seventh element: matrixCoefficients. Legal values are defined by  ISO/IEC 23001-8:2016, superceded
</del><ins>+    // Seventh element: matrixCoefficients. Legal values are defined by ISO/IEC 23001-8:2016, superseded
</ins><span class="cx">     // by ISO/IEC 23091-2:2019.
</span><del>-    auto matrixCoefficients = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto matrixCoefficients = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!matrixCoefficients || !isValidVPMatrixCoefficients(*matrixCoefficients))
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.matrixCoefficients = *matrixCoefficients;
</span><span class="lines">@@ -226,7 +226,7 @@
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx"> 
</span><span class="cx">     // Eighth element: videoFullRangeFlag. Legal values are 0 and 1.
</span><del>-    auto videoFullRangeFlag = toIntegralType<uint8_t>(*nextElement);
</del><ins>+    auto videoFullRangeFlag = parseInteger<uint8_t>(*nextElement);
</ins><span class="cx">     if (!videoFullRangeFlag || *videoFullRangeFlag > 1)
</span><span class="cx">         return WTF::nullopt;
</span><span class="cx">     configuration.videoFullRangeFlag = *videoFullRangeFlag;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationCDMPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm      2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm 2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #import "MediaPlayerPrivateMediaSourceAVFObjC.h"
</span><span class="cx"> #import <JavaScriptCore/RegularExpression.h>
</span><span class="cx"> #import <wtf/NeverDestroyed.h>
</span><ins>+#import <wtf/text/StringToIntegerConversion.h>
</ins><span class="cx"> #import <wtf/text/StringView.h>
</span><span class="cx"> 
</span><span class="cx"> #import "VideoToolboxSoftLink.h"
</span><span class="lines">@@ -47,21 +48,16 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed<RegularExpression> keySystemRE("^com\\.apple\\.fps\\.[23]_\\d+(?:,\\d+)*$", JSC::Yarr::TextCaseInsensitive);
</span><span class="cx"> 
</span><del>-    if (keySystem.isEmpty())
-        return WTF::nullopt;
-    
</del><span class="cx">     if (keySystemRE.get().match(keySystem) < 0)
</span><span class="cx">         return WTF::nullopt;
</span><del>-    
</del><ins>+
</ins><span class="cx">     StringView keySystemView { keySystem };
</span><span class="cx"> 
</span><del>-    int cdmVersion = keySystemView.substring(14, 1).toInt();
-    
</del><ins>+    int cdmVersion = parseInteger<int>(keySystemView.substring(14, 1)).value();
</ins><span class="cx">     Vector<int> protocolVersions;
</span><del>-    for (StringView protocolVersionString : keySystemView.substring(16).split(','))
-        protocolVersions.append(protocolVersionString.toInt());
-    
-    return {{ cdmVersion, WTFMove(protocolVersions) }};
</del><ins>+    for (auto protocolVersionString : keySystemView.substring(16).split(','))
+        protocolVersions.append(parseInteger<int>(protocolVersionString).value());
+    return { { cdmVersion, WTFMove(protocolVersions) } };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> CDMPrivateMediaSourceAVFObjC::~CDMPrivateMediaSourceAVFObjC()
</span><span class="lines">@@ -72,12 +68,13 @@
</span><span class="cx"> 
</span><span class="cx"> static bool queryDecoderAvailability()
</span><span class="cx"> {
</span><del>-    if (!canLoad_VideoToolbox_VTGetGVADecoderAvailability())
</del><ins>+    if (!canLoad_VideoToolbox_VTGetGVADecoderAvailability()) {
</ins><span class="cx"> #if HAVE(AVSTREAMSESSION)
</span><span class="cx">         return false;
</span><span class="cx"> #else
</span><span class="cx">         return true;
</span><span class="cx"> #endif
</span><ins>+    }
</ins><span class="cx">     uint32_t totalInstanceCount = 0;
</span><span class="cx">     OSStatus status = VTGetGVADecoderAvailability(&totalInstanceCount, nullptr);
</span><span class="cx">     return status == noErr && totalInstanceCount;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm   2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm      2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -62,6 +62,7 @@
</span><span class="cx"> #import <wtf/WeakPtr.h>
</span><span class="cx"> #import <wtf/text/AtomString.h>
</span><span class="cx"> #import <wtf/text/CString.h>
</span><ins>+#import <wtf/text/StringToIntegerConversion.h>
</ins><span class="cx"> 
</span><span class="cx"> #pragma mark - Soft Linking
</span><span class="cx"> 
</span><span class="lines">@@ -768,7 +769,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::trackDidChangeSelected(VideoTrackPrivate& track, bool selected)
</span><span class="cx"> {
</span><del>-    auto trackID = track.id().string().toUInt64();
</del><ins>+    auto trackID = parseIntegerAllowingTrailingJunk<uint64_t>(track.id()).valueOr(0);
</ins><span class="cx"> 
</span><span class="cx">     ALWAYS_LOG(LOGIDENTIFIER, "video trackID = ", trackID, ", selected = ", selected);
</span><span class="cx"> 
</span><span class="lines">@@ -794,7 +795,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::trackDidChangeEnabled(AudioTrackPrivate& track, bool enabled)
</span><span class="cx"> {
</span><del>-    auto trackID = track.id().string().toUInt64();
</del><ins>+    auto trackID = parseIntegerAllowingTrailingJunk<uint64_t>(track.id()).valueOr(0);
</ins><span class="cx"> 
</span><span class="cx">     ALWAYS_LOG(LOGIDENTIFIER, "audio trackID = ", trackID, ", selected = ", enabled);
</span><span class="cx"> 
</span><span class="lines">@@ -1016,7 +1017,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::flush(const AtomString& trackIDString)
</span><span class="cx"> {
</span><del>-    auto trackID = trackIDString.string().toUInt64();
</del><ins>+    auto trackID = parseIntegerAllowingTrailingJunk<uint64_t>(trackIDString).valueOr(0);
</ins><span class="cx">     DEBUG_LOG(LOGIDENTIFIER, trackID);
</span><span class="cx"> 
</span><span class="cx">     if (trackID == m_enabledVideoTrackID) {
</span><span class="lines">@@ -1058,7 +1059,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::enqueueSample(Ref<MediaSample>&& sample, const AtomString& trackIDString)
</span><span class="cx"> {
</span><del>-    auto trackID = trackIDString.string().toUInt64();
</del><ins>+    auto trackID = parseIntegerAllowingTrailingJunk<uint64_t>(trackIDString).valueOr(0);
</ins><span class="cx">     if (trackID != m_enabledVideoTrackID && !m_audioRenderers.contains(trackID))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -1171,7 +1172,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool SourceBufferPrivateAVFObjC::isReadyForMoreSamples(const AtomString& trackIDString)
</span><span class="cx"> {
</span><del>-    auto trackID = trackIDString.string().toUInt64();
</del><ins>+    auto trackID = parseIntegerAllowingTrailingJunk<uint64_t>(trackIDString).valueOr(0);
</ins><span class="cx">     if (trackID == m_enabledVideoTrackID) {
</span><span class="cx">         if (m_decompressionSession)
</span><span class="cx">             return m_decompressionSession->isReadyForMoreMediaData();
</span><span class="lines">@@ -1235,7 +1236,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples(const AtomString& trackIDString)
</span><span class="cx"> {
</span><del>-    auto trackID = trackIDString.string().toUInt64();
</del><ins>+    auto trackID = parseIntegerAllowingTrailingJunk<uint64_t>(trackIDString).valueOr(0);
</ins><span class="cx">     if (trackID == m_enabledVideoTrackID) {
</span><span class="cx">         if (m_decompressionSession) {
</span><span class="cx">             m_decompressionSession->requestMediaDataWhenReady([this, trackID] {
</span><span class="lines">@@ -1260,10 +1261,8 @@
</span><span class="cx"> 
</span><span class="cx"> bool SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime(const AtomString& trackIDString) const
</span><span class="cx"> {
</span><del>-    auto trackID = trackIDString.string().toUInt64();
-    if (trackID == m_enabledVideoTrackID)
-        return [getAVSampleBufferDisplayLayerClass() instancesRespondToSelector:@selector(expectMinimumUpcomingSampleBufferPresentationTime:)];
-    return false;
</del><ins>+    return parseIntegerAllowingTrailingJunk<uint64_t>(trackIDString).valueOr(0) == m_enabledVideoTrackID
+        && [getAVSampleBufferDisplayLayerClass() instancesRespondToSelector:@selector(expectMinimumUpcomingSampleBufferPresentationTime:)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime(const AtomString& trackIDString, const MediaTime& presentationTime)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaHEVCUtilitiesCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.mm (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.mm       2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.mm  2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -31,12 +31,10 @@
</span><span class="cx"> #import "FourCC.h"
</span><span class="cx"> #import "HEVCUtilities.h"
</span><span class="cx"> #import "MediaCapabilitiesInfo.h"
</span><del>-
-#import <wtf/RobinHoodHashMap.h>
</del><span class="cx"> #import <wtf/text/StringToIntegerConversion.h>
</span><del>-#import <pal/cocoa/AVFoundationSoftLink.h>
</del><span class="cx"> 
</span><span class="cx"> #import "VideoToolboxSoftLink.h"
</span><ins>+#import <pal/cocoa/AVFoundationSoftLink.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -150,11 +148,10 @@
</span><span class="cx">     for (id value in array) {
</span><span class="cx">         if (![value isKindOfClass:NSString.class])
</span><span class="cx">             return WTF::nullopt;
</span><del>-        bool isValidNumber = false;
-        auto numericValue = toIntegralType<uint16_t>(String((NSString *)value), &isValidNumber);
-        if (!isValidNumber)
</del><ins>+        auto numericValue = parseInteger<uint16_t>(String((NSString *)value));
+        if (!numericValue)
</ins><span class="cx">             return WTF::nullopt;
</span><del>-        vector.uncheckedAppend(numericValue);
</del><ins>+        vector.uncheckedAppend(*numericValue);
</ins><span class="cx">     }
</span><span class="cx">     return vector;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkParsedRequestRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ParsedRequestRange.cpp (277245 => 277246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ParsedRequestRange.cpp     2021-05-09 18:22:23 UTC (rev 277245)
+++ trunk/Source/WebCore/platform/network/ParsedRequestRange.cpp        2021-05-09 18:31:34 UTC (rev 277246)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2021 Apple Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2021 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "ParsedRequestRange.h"
</span><span class="cx"> 
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringToIntegerConversion.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>