<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>227436</bug_id>
          
          <creation_ts>2021-06-27 23:27:00 -0700</creation_ts>
          <short_desc>Remove &quot;function declared ‘static’ but never defined&quot; build warnings since r278971.</short_desc>
          <delta_ts>2021-06-29 16:49:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772981</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-27 23:27:00 -0700</bug_when>
    <thetext>Static functions should be put in cpp file so that it is visible only within the file, and header file should include extern functions
with single implementation, not static functions with different impls for each cpp files usually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772982</commentid>
    <comment_count>1</comment_count>
      <attachid>432366</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-27 23:28:46 -0700</bug_when>
    <thetext>Created attachment 432366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773066</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-28 07:58:15 -0700</bug_when>
    <thetext>*** Bug 227450 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773067</commentid>
    <comment_count>3</comment_count>
      <attachid>432366</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-28 08:00:58 -0700</bug_when>
    <thetext>Comment on attachment 432366
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=432366&amp;action=review

[5/491] Building CXX object Source/JavaScriptCore/CMakeFi...edSources/unified-sources/UnifiedSource-f2e18ffc-27.cpp.o
In file included from ../../Source/JavaScriptCore/runtime/LiteralParser.cpp:39,
                 from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-27.cpp:5:
JavaScriptCore/DerivedSources/KeywordLookup.h:87:27: warning: ‘bool JSC::cannotBeIdentPartOrEscapeStart(LChar)’ declared ‘static’ but never defined [-Wunused-function]
   87 | static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar);
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JavaScriptCore/DerivedSources/KeywordLookup.h:88:27: warning: ‘bool JSC::cannotBeIdentPartOrEscapeStart(UChar)’ declared ‘static’ but never defined [-Wunused-function]
   88 | static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(UChar);
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

These warnings were introduced in r278971 &quot;[JSC] Optimize JSON.parse with small data by changing Identifier pool mechanism.&quot; Problem is KeywordLookup.h does not define these functions and expects the translation unit that it is #included in to do so. Previously that was only Lexer.cpp. Problem is it&apos;s now also #included from LiteralParser.cpp, which does not define cannotBeIdentPartOrEscapeStart(LChar) or cannotBeIdentPartOrEscapeStart(UChar).

&gt; Source/JavaScriptCore/parser/Lexer.cpp:788
&gt; -static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar c)
&gt; +ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar c)

Problem is using ALWAYS_INLINE for a function that&apos;s not defined in the header doesn&apos;t make sense. We need to either:

 (a) Also remove ALWAYS_INLINE, or
 (b) Move the definitions of these functions to KeywordLookup.h (which is generated by KeywordLookupGenerator.py)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773120</commentid>
    <comment_count>4</comment_count>
      <attachid>432366</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-28 10:29:53 -0700</bug_when>
    <thetext>Comment on attachment 432366
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=432366&amp;action=review

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:788
&gt;&gt; +ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar c)
&gt; 
&gt; Problem is using ALWAYS_INLINE for a function that&apos;s not defined in the header doesn&apos;t make sense. We need to either:
&gt; 
&gt;  (a) Also remove ALWAYS_INLINE, or
&gt;  (b) Move the definitions of these functions to KeywordLookup.h (which is generated by KeywordLookupGenerator.py)

Please do not remove ALWAYS_INLINE. They are *super* critical performance-sensitive function, and removing that can cause severe perf impact on several benchmarks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773122</commentid>
    <comment_count>5</comment_count>
      <attachid>432366</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-28 10:33:17 -0700</bug_when>
    <thetext>Comment on attachment 432366
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=432366&amp;action=review

&gt;&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:788
&gt;&gt;&gt; +ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar c)
&gt;&gt; 
&gt;&gt; Problem is using ALWAYS_INLINE for a function that&apos;s not defined in the header doesn&apos;t make sense. We need to either:
&gt;&gt; 
&gt;&gt;  (a) Also remove ALWAYS_INLINE, or
&gt;&gt;  (b) Move the definitions of these functions to KeywordLookup.h (which is generated by KeywordLookupGenerator.py)
&gt; 
&gt; Please do not remove ALWAYS_INLINE. They are *super* critical performance-sensitive function, and removing that can cause severe perf impact on several benchmarks.

Let&apos;s do (b) then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773132</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-28 10:46:28 -0700</bug_when>
    <thetext>Hi Joonghun, let me know if you want to submit another patch. Otherwise, I can try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773277</commentid>
    <comment_count>7</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-28 17:13:25 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; Hi Joonghun, let me know if you want to submit another patch. Otherwise, I
&gt; can try.

Hi Michael, I will do the (b) in the next patchset.
Please review that change:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773342</commentid>
    <comment_count>8</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-29 00:39:07 -0700</bug_when>
    <thetext>(In reply to Joonghun Park from comment #7)
&gt; (In reply to Michael Catanzaro from comment #6)
&gt; &gt; Hi Joonghun, let me know if you want to submit another patch. Otherwise, I
&gt; &gt; can try.
&gt; 
&gt; Hi Michael, I will do the (b) in the next patchset.
&gt; Please review that change:)

Hi, Michael.

While I was trying to move cannotBeIdentPartOrEscapeStart,
I found that the depedent functions and variables seemed not appropriate to move to KeywordLookup.h.

For example, if we move isSingleCharacterIdentPart(UChar c),
then we need to move isIdentPart(CharacterType c) and typesOfLatin1Characters[256] array too, and it seems that typesOfLatin1Characters  should be used only in Lexer.cpp translation unit.

And if we only move the declaration of isIdentStart(CharacterType c),
then it goes to the same place we are currently in.

So I looked around some articles, 
1) https://stackoverflow.com/questions/5057021/why-are-c-inline-functions-in-the-header
2) https://en.cppreference.com/w/cpp/language/inline

and it seems that inline function&apos;s definition doesn&apos;t have to be placed in header file as long as all the definitions are identical(that&apos;s why usually inline function&apos;s definition is put in header, to keep it identical for all cpp files including the header file).

So I wonder about 2 options below.

a) If it&apos;s ok to keep the inline definitions in cpp files as it is now,
and just remove static keyword(as the current patchset does).


b) Or maybe simply we can keep &apos;static inline&apos; keywords as it is now,
and just add empty definitions in LiteralParser.cpp as below.

static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar)
{
    return false;
}

static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(UChar)
{
    return false;
}

I confirmed that doing this removed the build warnings,
warning: ‘bool JSC::cannotBeIdentPartOrEscapeStart()’ declared ‘static’ but never defined [-Wunused-function],
but the cons is that it seems those functions has no meaning in LiteralParser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773387</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-29 06:01:13 -0700</bug_when>
    <thetext>(In reply to Joonghun Park from comment #8)
&gt; So I wonder about 2 options below.
&gt; 
&gt; a) If it&apos;s ok to keep the inline definitions in cpp files as it is now,
&gt; and just remove static keyword(as the current patchset does).

I don&apos;t know. Under your proposal, these functions would not be defined in LiteralParser.cpp at all. I would avoid this.

&gt; b) Or maybe simply we can keep &apos;static inline&apos; keywords as it is now,
&gt; and just add empty definitions in LiteralParser.cpp as below.
&gt; 
&gt; static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar)
&gt; {
&gt;     return false;
&gt; }
&gt; 
&gt; static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(UChar)
&gt; {
&gt;     return false;
&gt; }

(b) would definitely be OK. I would make it RELEASE_ASSERT_NOT_REACHED() rather than return false. That should be perfectly safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773406</commentid>
    <comment_count>10</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-29 07:54:01 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #9)
&gt; (In reply to Joonghun Park from comment #8)
&gt; &gt; So I wonder about 2 options below.
&gt; &gt; 
&gt; &gt; a) If it&apos;s ok to keep the inline definitions in cpp files as it is now,
&gt; &gt; and just remove static keyword(as the current patchset does).
&gt; 
&gt; I don&apos;t know. Under your proposal, these functions would not be defined in
&gt; LiteralParser.cpp at all. I would avoid this.
&gt; 
&gt; &gt; b) Or maybe simply we can keep &apos;static inline&apos; keywords as it is now,
&gt; &gt; and just add empty definitions in LiteralParser.cpp as below.
&gt; &gt; 
&gt; &gt; static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar)
&gt; &gt; {
&gt; &gt;     return false;
&gt; &gt; }
&gt; &gt; 
&gt; &gt; static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(UChar)
&gt; &gt; {
&gt; &gt;     return false;
&gt; &gt; }
&gt; 
&gt; (b) would definitely be OK. I would make it RELEASE_ASSERT_NOT_REACHED()
&gt; rather than return false. That should be perfectly safe.

Thank you for your review. I will upload a patchset with (b).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773419</commentid>
    <comment_count>11</comment_count>
      <attachid>432484</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-29 09:19:39 -0700</bug_when>
    <thetext>Created attachment 432484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773481</commentid>
    <comment_count>12</comment_count>
      <attachid>432484</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-29 12:02:17 -0700</bug_when>
    <thetext>Comment on attachment 432484
Patch

Maybe Yusuke will have a better proposal for how to reorganize the code to avoid this, but it seems like a pretty good solution for now. Thanks Joonghun!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773608</commentid>
    <comment_count>13</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2021-06-29 16:13:24 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)
&gt; Comment on attachment 432484 [details]
&gt; Patch
&gt; 
&gt; Maybe Yusuke will have a better proposal for how to reorganize the code to
&gt; avoid this, but it seems like a pretty good solution for now. Thanks
&gt; Joonghun!

I got it:) Thank you for your help, Michael. I will land this for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773621</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-29 16:48:54 -0700</bug_when>
    <thetext>Committed r279393 (239258@main): &lt;https://commits.webkit.org/239258@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432484.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773622</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-29 16:49:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/79939462&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432366</attachid>
            <date>2021-06-27 23:28:46 -0700</date>
            <delta_ts>2021-06-29 09:19:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227436-20210628152844.patch</filename>
            <type>text/plain</type>
            <size>3390</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZWVhOTBkZGQwMTU2NzY2MDJkMzlkOTJiNTU2OWI3OGY1MDE4MTlhLi45NDJkZTQzMGM1ZGIxZGMw
ZjM0MzQxODEzMTQzMTczMzg2YTU3ZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNi0yNyAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQ2hhbmdlIHN0YXRpYyBmdW50aW9uIHRvIGV4dGVybiBpbiBLZXl3
b3JkTG9va3VwLmguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0MzYKKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGdjYyB3YXJuaW5n
IGJlbG93LgorICAgICAgICB3YXJuaW5nOiDigJhib29sIEpTQzo6Y2Fubm90QmVJZGVudFBhcnRP
ckVzY2FwZVN0YXJ0KCnigJkgZGVjbGFyZWQg4oCYc3RhdGlj4oCZIGJ1dCBuZXZlciBkZWZpbmVk
IFstV3VudXNlZC1mdW5jdGlvbl0KKworICAgICAgICBTdGF0aWMgZnVuY3Rpb25zIHNob3VsZCBi
ZSBwdXQgaW4gY3BwIGZpbGUgc28gdGhhdCBpdCBpcyB2aXNpYmxlIG9ubHkKKyAgICAgICAgd2l0
aGluIHRoZSBmaWxlLCBhbmQgaGVhZGVyIGZpbGUgc2hvdWxkIGluY2x1ZGUgZXh0ZXJuIGZ1bmN0
aW9ucworICAgICAgICB3aXRoIHNpbmdsZSBpbXBsZW1lbnRhdGlvbiwgbm90IHN0YXRpYyBmdW5j
dGlvbnMgd2l0aCBkaWZmZXJlbnQgaW1wbHMKKyAgICAgICAgZm9yIGVhY2ggY3BwIGZpbGVzIHVz
dWFsbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBLZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5OgorICAgICAgICAoVHJpZS5wcmludEFzQyk6Cisg
ICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Y2Fubm90QmVJZGVudFBh
cnRPckVzY2FwZVN0YXJ0KToKKwogMjAyMS0wNi0yNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzkyNjYu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRv
ci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5Cmlu
ZGV4IDgwMjUxYTg4MDZkZmE1NTgwMzQ2YWM2MThiNTBhZDFkYTg3NjUzZGIuLjcyZjI3OTU4MTNi
MTNlMDE2NzFhNzRhMTFjOGFlOTMzZTAzZDlhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CkBAIC0xODQsMTAgKzE4NCwxMCBAQCBjbGFz
cyBUcmllOgogICAgIGRlZiBwcmludEFzQyhzZWxmKToKICAgICAgICAgcHJpbnQoIm5hbWVzcGFj
ZSBKU0MgeyIpCiAgICAgICAgIHByaW50KCIiKQotICAgICAgICBwcmludCgic3RhdGljIEFMV0FZ
U19JTkxJTkUgYm9vbCBjYW5ub3RCZUlkZW50UGFydE9yRXNjYXBlU3RhcnQoTENoYXIpOyIpCi0g
ICAgICAgIHByaW50KCJzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNhbm5vdEJlSWRlbnRQYXJ0
T3JFc2NhcGVTdGFydChVQ2hhcik7IikKKyAgICAgICAgcHJpbnQoIkFMV0FZU19JTkxJTkUgYm9v
bCBjYW5ub3RCZUlkZW50UGFydE9yRXNjYXBlU3RhcnQoTENoYXIpOyIpCisgICAgICAgIHByaW50
KCJBTFdBWVNfSU5MSU5FIGJvb2wgY2Fubm90QmVJZGVudFBhcnRPckVzY2FwZVN0YXJ0KFVDaGFy
KTsiKQogICAgICAgICAjIG1heCBsZW5ndGggKyAxIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55
IGJvdW5kcyBjaGVja2luZyBhdCBhbGwKLSAgICAgICAgcHJpbnQoInN0YXRpYyBjb25zdGV4cHIg
aW50IG1heFRva2VuTGVuZ3RoID0gJWQ7IiAlIChzZWxmLm1heExlbmd0aCgpICsgMSkpCisgICAg
ICAgIHByaW50KCJjb25zdGV4cHIgaW50IG1heFRva2VuTGVuZ3RoID0gJWQ7IiAlIChzZWxmLm1h
eExlbmd0aCgpICsgMSkpCiAgICAgICAgIHByaW50KCIiKQogICAgICAgICBwcmludCgidGVtcGxh
dGUgPD4iKQogICAgICAgICBwcmludCgidGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRp
Zmllcj4gQUxXQVlTX0lOTElORSBKU1Rva2VuVHlwZSBMZXhlcjxVQ2hhcj46OnBhcnNlS2V5d29y
ZChKU1Rva2VuRGF0YSogZGF0YSkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNw
cAppbmRleCAxOWM4MTVmODViMzk0YTcyMDliYmE1NjM3Y2JkNjQwZWRmN2VjYWQ5Li5jZWVhYzQ2
YTUxNmUxNjFkNWQyZGQ3ODIwNDgxYjRlYThlZjcyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL0xleGVyLmNwcApAQCAtNzg1LDE0ICs3ODUsMTQgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgYm9vbCBpc1NpbmdsZUNoYXJhY3RlcklkZW50UGFydChVQ2hhciBjKQogICAgIHJldHVybiAh
VTE2X0lTX1NVUlJPR0FURShjKSAmJiBpc0lkZW50UGFydChzdGF0aWNfY2FzdDxVQ2hhcjMyPihj
KSk7CiB9CiAKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgY2Fubm90QmVJZGVudFBhcnRPckVz
Y2FwZVN0YXJ0KExDaGFyIGMpCitBTFdBWVNfSU5MSU5FIGJvb2wgY2Fubm90QmVJZGVudFBhcnRP
ckVzY2FwZVN0YXJ0KExDaGFyIGMpCiB7CiAgICAgcmV0dXJuICFpc0lkZW50UGFydChjKSAmJiBj
ICE9ICdcXCc7CiB9CiAKIC8vIE5PVEU6IFRoaXMgbWF5IGdpdmUgZ2l2ZSBmYWxzZSBuZWdhdGl2
ZXMgKGZvciBub24tYXNjaWkpIGJ1dCB3b24ndCBnaXZlIGZhbHNlIHBvc2l0aXR2ZXMuCiAvLyBU
aGlzIG1lYW5zIGl0IGNhbiBiZSB1c2VkIHRvIGRldGVjdCB0aGUgZW5kIG9mIGEga2V5d29yZCAo
YWxsIGtleXdvcmRzIGFyZSBhc2NpaSkKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgY2Fubm90
QmVJZGVudFBhcnRPckVzY2FwZVN0YXJ0KFVDaGFyIGMpCitBTFdBWVNfSU5MSU5FIGJvb2wgY2Fu
bm90QmVJZGVudFBhcnRPckVzY2FwZVN0YXJ0KFVDaGFyIGMpCiB7CiAgICAgaWYgKExJS0VMWShp
c0xhdGluMShjKSkpCiAgICAgICAgIHJldHVybiBjYW5ub3RCZUlkZW50UGFydE9yRXNjYXBlU3Rh
cnQoc3RhdGljX2Nhc3Q8TENoYXI+KGMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432484</attachid>
            <date>2021-06-29 09:19:39 -0700</date>
            <delta_ts>2021-06-29 16:48:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227436-20210630011938.patch</filename>
            <type>text/plain</type>
            <size>1800</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YjBlYzcxNzhiNGM3NDI5MzNlYjA3Zjk1MjM4Y2M0MDFjOTZhN2MzLi5lMGE4NmEzMzFiZjFlOTM2
ZDNjZWNkNDZmYjVlMjA2YmZiMjZhN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0wNi0yOSAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgUmVtb3ZlICJmdW5jdGlvbiBkZWNsYXJlZCDigJhzdGF0aWPigJkg
YnV0IG5ldmVyIGRlZmluZWQiIGJ1aWxkIHdhcm5pbmdzIHNpbmNlIHIyNzg5NzEuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MzYKKworICAgICAg
ICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGJ1aWxkIHdhcm5pbmdzIGJlbG93LgorICAgICAgICB3
YXJuaW5nOiDigJhib29sIEpTQzo6Y2Fubm90QmVJZGVudFBhcnRPckVzY2FwZVN0YXJ0KExDaGFy
KeKAmSBkZWNsYXJlZCDigJhzdGF0aWPigJkgYnV0IG5ldmVyIGRlZmluZWQgWy1XdW51c2VkLWZ1
bmN0aW9uXQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcDogQWRkIGRlZmluaXRpb25zIGZvciBjYW5ub3RC
ZUlkZW50UGFydE9yRXNjYXBlU3RhcnQuCisgICAgICAgIChKU0M6OmNhbm5vdEJlSWRlbnRQYXJ0
T3JFc2NhcGVTdGFydCk6CisKIDIwMjEtMDYtMjggIFlpamlhIEh1YW5nICA8eWlqaWFfaHVhbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG5ldyBwYXR0ZXJuIHRvIGluc3RydWN0aW9uIHNl
bGVjdG9yIHRvIHVzZSBCSUMgc3VwcG9ydGVkIGJ5IEFSTTY0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCmluZGV4IGQxNDQ3ZTIzYTg4ODQ3Zjhi
MWFiNTNlMjRlZGU5OTJmOWZiZmU5ZmIuLjQ0YjljMWMyNjUxMzJjZTI1ZTE4M2YwYTUyZGU1NWFl
OThkN2U0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVy
YWxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQ
YXJzZXIuY3BwCkBAIC0xODksNiArMTg5LDE2IEBAIEFMV0FZU19JTkxJTkUgSWRlbnRpZmllciBM
aXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUlkZW50aWZpZXIoY29uc3QgTGl0ZXJhbENoCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjYW5ub3RC
ZUlkZW50UGFydE9yRXNjYXBlU3RhcnQoTENoYXIpCit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKworc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjYW5ub3RCZUlkZW50
UGFydE9yRXNjYXBlU3RhcnQoVUNoYXIpCit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKwogLy8gMjU2IExhdGluLTEgY29kZXMKIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
VG9rZW5UeXBlIHRva2VuVHlwZXNPZkxhdGluMUNoYXJhY3RlcnNbMjU2XSA9IHsKIC8qICAgMCAt
IE51bGwgICAgICAgICAgICAgICAqLyBUb2tFcnJvciwK
</data>

          </attachment>
      

    </bug>

</bugzilla>