Title: [282023] trunk/Source/_javascript_Core
Revision
282023
Author
ross.kirsl...@sony.com
Date
2021-09-03 14:37:46 -0700 (Fri, 03 Sep 2021)

Log Message

[JSC] Yarr::ByteTerm sometimes leaves fields uninitialized
https://bugs.webkit.org/show_bug.cgi?id=229891

Reviewed by Yusuke Suzuki.

* yarr/YarrInterpreter.h:
(JSC::Yarr::ByteTerm::ByteTerm):
Default initialize `frameLocation` and `inputPosition`.
(Also, use initializer list where possible.)

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (282022 => 282023)


--- trunk/Source/_javascript_Core/ChangeLog	2021-09-03 21:07:46 UTC (rev 282022)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-09-03 21:37:46 UTC (rev 282023)
@@ -1,3 +1,15 @@
+2021-09-03  Ross Kirsling  <ross.kirsl...@sony.com>
+
+        [JSC] Yarr::ByteTerm sometimes leaves fields uninitialized
+        https://bugs.webkit.org/show_bug.cgi?id=229891
+
+        Reviewed by Yusuke Suzuki.
+
+        * yarr/YarrInterpreter.h:
+        (JSC::Yarr::ByteTerm::ByteTerm):
+        Default initialize `frameLocation` and `inputPosition`.
+        (Also, use initializer list where possible.)
+
 2021-09-03  Yusuke Suzuki  <ysuz...@apple.com>
 
         [JSC] Implement Temporal.TimeZone

Modified: trunk/Source/_javascript_Core/yarr/YarrInterpreter.h (282022 => 282023)


--- trunk/Source/_javascript_Core/yarr/YarrInterpreter.h	2021-09-03 21:07:46 UTC (rev 282022)
+++ trunk/Source/_javascript_Core/yarr/YarrInterpreter.h	2021-09-03 21:37:46 UTC (rev 282023)
@@ -70,7 +70,7 @@
         } anchors;
         unsigned checkInputCount;
     };
-    unsigned frameLocation;
+    unsigned frameLocation { 0 };
     enum class Type : uint8_t {
         BodyAlternativeBegin,
         BodyAlternativeDisjunction,
@@ -107,18 +107,18 @@
     Type type;
     bool m_capture : 1;
     bool m_invert : 1;
-    unsigned inputPosition;
+    unsigned inputPosition { 0 };
 
     ByteTerm(UChar32 ch, unsigned inputPos, unsigned frameLocation, Checked<unsigned> quantityCount, QuantifierType quantityType)
         : frameLocation(frameLocation)
         , m_capture(false)
         , m_invert(false)
+        , inputPosition(inputPos)
     {
         atom.patternCharacter = ch;
         atom.quantityType = quantityType;
         atom.quantityMinCount = quantityCount;
         atom.quantityMaxCount = quantityCount;
-        inputPosition = inputPos;
 
         switch (quantityType) {
         case QuantifierType::FixedCount:
@@ -137,6 +137,7 @@
         : frameLocation(frameLocation)
         , m_capture(false)
         , m_invert(false)
+        , inputPosition(inputPos)
     {
         switch (quantityType) {
         case QuantifierType::FixedCount:
@@ -155,7 +156,6 @@
         atom.quantityType = quantityType;
         atom.quantityMinCount = quantityCount;
         atom.quantityMaxCount = quantityCount;
-        inputPosition = inputPos;
     }
 
     ByteTerm(CharacterClass* characterClass, bool invert, unsigned inputPos)
@@ -162,12 +162,12 @@
         : type(ByteTerm::Type::CharacterClass)
         , m_capture(false)
         , m_invert(invert)
+        , inputPosition(inputPos)
     {
         atom.characterClass = characterClass;
         atom.quantityType = QuantifierType::FixedCount;
         atom.quantityMinCount = 1;
         atom.quantityMaxCount = 1;
-        inputPosition = inputPos;
     }
 
     ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, unsigned inputPos)
@@ -174,6 +174,7 @@
         : type(type)
         , m_capture(capture)
         , m_invert(false)
+        , inputPosition(inputPos)
     {
         atom.subpatternId = subpatternId;
         atom.parenthesesDisjunction = parenthesesInfo;
@@ -180,7 +181,6 @@
         atom.quantityType = QuantifierType::FixedCount;
         atom.quantityMinCount = 1;
         atom.quantityMaxCount = 1;
-        inputPosition = inputPos;
     }
     
     ByteTerm(Type type, bool invert = false)
@@ -197,12 +197,12 @@
         : type(type)
         , m_capture(capture)
         , m_invert(invert)
+        , inputPosition(inputPos)
     {
         atom.subpatternId = subpatternId;
         atom.quantityType = QuantifierType::FixedCount;
         atom.quantityMinCount = 1;
         atom.quantityMaxCount = 1;
-        inputPosition = inputPos;
     }
 
     static ByteTerm BOL(unsigned inputPos)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to