<?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>51927</bug_id>
          
          <creation_ts>2011-01-05 07:02:18 -0800</creation_ts>
          <short_desc>Unify string table adding in AtomicString</short_desc>
          <delta_ts>2011-01-08 19:10:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329549</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-01-05 07:02:18 -0800</bug_when>
    <thetext>Unify string table adding in AtomicString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329550</commentid>
    <comment_count>1</comment_count>
      <attachid>78001</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-01-05 07:03:32 -0800</bug_when>
    <thetext>Created attachment 78001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330447</commentid>
    <comment_count>2</comment_count>
      <attachid>78001</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-06 14:52:45 -0800</bug_when>
    <thetext>Comment on attachment 78001
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        * wtf/text/AtomicString.cpp:
&gt; +        (WTF::addIntoStringTable):
&gt; +        (WTF::AtomicString::add):
&gt; +        (WTF::AtomicString::fromUTF8):

Change logs are much better when you add some per-function comments. It takes a few more minutes, but is better for the project long-term.

&gt; Source/JavaScriptCore/wtf/text/AtomicString.cpp:78
&gt; +static inline PassRefPtr&lt;StringImpl&gt; addIntoStringTable(const T&amp; value)

I would suggest calling this “addToStringTable” rather than “addIntoStringTable”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330451</commentid>
    <comment_count>3</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-01-06 14:55:36 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 78001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78001&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +        * wtf/text/AtomicString.cpp:
&gt; &gt; +        (WTF::addIntoStringTable):
&gt; &gt; +        (WTF::AtomicString::add):
&gt; &gt; +        (WTF::AtomicString::fromUTF8):
&gt; 
&gt; Change logs are much better when you add some per-function comments. It takes a few more minutes, but is better for the project long-term.

I usually try to add per function comments, when it make sense. It seams that I need to try it harder. :-)

&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/text/AtomicString.cpp:78
&gt; &gt; +static inline PassRefPtr&lt;StringImpl&gt; addIntoStringTable(const T&amp; value)
&gt; 
&gt; I would suggest calling this “addToStringTable” rather than “addIntoStringTable”.
I wasn&apos;t very happy with the name too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331219</commentid>
    <comment_count>4</comment_count>
      <attachid>78318</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-01-08 10:31:40 -0800</bug_when>
    <thetext>Created attachment 78318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331352</commentid>
    <comment_count>5</comment_count>
      <attachid>78318</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-08 19:10:29 -0800</bug_when>
    <thetext>Comment on attachment 78318
Patch

Clearing flags on attachment: 78318

Committed r75343: &lt;http://trac.webkit.org/changeset/75343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331353</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-08 19:10:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78001</attachid>
            <date>2011-01-05 07:03:32 -0800</date>
            <delta_ts>2011-01-08 10:31:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51927-20110105160330.patch</filename>
            <type>text/plain</type>
            <size>4948</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDY5NTNkYWI4MzA4ZGVjNmIyZTI0ZDdmOGViYWM3
YjhkYWNiZjQ1YjYuLmZmMWVmNWZhMjQ1ZmRkZTdjNzY3YmE2MWUzZmJhZWRiNGM2NWFjY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTA1ICBQYXRy
aWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaWZ5IHN0cmluZyB0YWJsZSBhZGRpbmcgaW4g
QXRvbWljU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTkyNworCisgICAgICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcDoKKyAgICAg
ICAgKFdURjo6YWRkSW50b1N0cmluZ1RhYmxlKToKKyAgICAgICAgKFdURjo6QXRvbWljU3RyaW5n
OjphZGQpOgorICAgICAgICAoV1RGOjpBdG9taWNTdHJpbmc6OmZyb21VVEY4KToKKwogMjAxMS0w
MS0wMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90
ZXh0L0F0b21pY1N0cmluZy5jcHAKaW5kZXggOTNhZDIxZDg2NWNhNDAwY2FhNGJiOWVmOTlhYzNi
MDMwNmUwYTM1Ny4uOGU4ZmIxYzQ5YTA4MmRmODFlOGQzYTBkMWU4YTI1NDM5MDU2MmViNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAKQEAg
LTc0LDYgKzc0LDE2IEBAIHN0YXRpYyBpbmxpbmUgSGFzaFNldDxTdHJpbmdJbXBsKj4mIHN0cmlu
Z1RhYmxlKCkKICAgICByZXR1cm4gdGFibGUtPnRhYmxlKCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yPgorc3RhdGljIGlubGluZSBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IGFkZEludG9TdHJpbmdUYWJsZShjb25zdCBUJiB2YWx1ZSkKK3sKKyAgICBw
YWlyPEhhc2hTZXQ8U3RyaW5nSW1wbCo+OjppdGVyYXRvciwgYm9vbD4gYWRkUmVzdWx0ID0gc3Ry
aW5nVGFibGUoKS5hZGQ8VCwgSGFzaFRyYW5zbGF0b3I+KHZhbHVlKTsKKworICAgIC8vIElmIHRo
ZSBzdHJpbmcgaXMgbmV3bHktdHJhbnNsYXRlZCwgdGhlbiB3ZSBuZWVkIHRvIGFkb3B0IGl0Lgor
ICAgIC8vIFRoZSBib29sZWFuIGluIHRoZSBwYWlyIHRlbGxzIHVzIGlmIHRoYXQgaXMgc28uCisg
ICAgcmV0dXJuIGFkZFJlc3VsdC5zZWNvbmQgPyBhZG9wdFJlZigqYWRkUmVzdWx0LmZpcnN0KSA6
ICphZGRSZXN1bHQuZmlyc3Q7Cit9CisKIHN0cnVjdCBDU3RyaW5nVHJhbnNsYXRvciB7CiAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgY2hhciogYykKICAgICB7CkBAIC0xMTUsMTEgKzEy
NSw5IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGQoY29uc3QgY2hh
ciogYykKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghKmMpCi0gICAg
ICAgIHJldHVybiBTdHJpbmdJbXBsOjplbXB0eSgpOyAgICAKLSAgICBwYWlyPEhhc2hTZXQ8U3Ry
aW5nSW1wbCo+OjppdGVyYXRvciwgYm9vbD4gYWRkUmVzdWx0ID0gc3RyaW5nVGFibGUoKS5hZGQ8
Y29uc3QgY2hhciosIENTdHJpbmdUcmFuc2xhdG9yPihjKTsKLSAgICBpZiAoIWFkZFJlc3VsdC5z
ZWNvbmQpCi0gICAgICAgIHJldHVybiAqYWRkUmVzdWx0LmZpcnN0OwotICAgIHJldHVybiBhZG9w
dFJlZigqYWRkUmVzdWx0LmZpcnN0KTsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5
KCk7CisKKyAgICByZXR1cm4gYWRkSW50b1N0cmluZ1RhYmxlPGNvbnN0IGNoYXIqLCBDU3RyaW5n
VHJhbnNsYXRvcj4oYyk7CiB9CiAKIHN0cnVjdCBVQ2hhckJ1ZmZlciB7CkBAIC0yNjUsMTIgKzI3
Myw4IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGQoY29uc3QgVUNo
YXIqIHMsIHVuc2lnbmVkIGxlbmd0aCkKICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmVtcHR5KCk7CiAgICAgCi0gICAgVUNoYXJCdWZmZXIgYnVmID0geyBzLCBs
ZW5ndGggfTsgCi0gICAgcGFpcjxIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0b3IsIGJvb2w+
IGFkZFJlc3VsdCA9IHN0cmluZ1RhYmxlKCkuYWRkPFVDaGFyQnVmZmVyLCBVQ2hhckJ1ZmZlclRy
YW5zbGF0b3I+KGJ1Zik7Ci0KLSAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIG5ld2x5LXRyYW5zbGF0
ZWQsIHRoZW4gd2UgbmVlZCB0byBhZG9wdCBpdC4KLSAgICAvLyBUaGUgYm9vbGVhbiBpbiB0aGUg
cGFpciB0ZWxscyB1cyBpZiB0aGF0IGlzIHNvLgotICAgIHJldHVybiBhZGRSZXN1bHQuc2Vjb25k
ID8gYWRvcHRSZWYoKmFkZFJlc3VsdC5maXJzdCkgOiAqYWRkUmVzdWx0LmZpcnN0OworICAgIFVD
aGFyQnVmZmVyIGJ1ZmZlciA9IHsgcywgbGVuZ3RoIH07CisgICAgcmV0dXJuIGFkZEludG9TdHJp
bmdUYWJsZTxVQ2hhckJ1ZmZlciwgVUNoYXJCdWZmZXJUcmFuc2xhdG9yPihidWZmZXIpOwogfQog
CiBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IEF0b21pY1N0cmluZzo6YWRkKGNvbnN0IFVDaGFyKiBz
LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIGV4aXN0aW5nSGFzaCkKQEAgLTI4MCwxMiArMjg0
LDkgQEAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6OmFkZChjb25zdCBVQ2hh
ciogcywgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ24KIAogICAgIGlmICghbGVuZ3RoKQogICAgICAg
ICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKLSAgICAKLSAgICBIYXNoQW5kQ2hhcmFjdGVy
cyBidWZmZXIgPSB7IGV4aXN0aW5nSGFzaCwgcywgbGVuZ3RoIH07IAotICAgIHBhaXI8SGFzaFNl
dDxTdHJpbmdJbXBsKj46Oml0ZXJhdG9yLCBib29sPiBhZGRSZXN1bHQgPSBzdHJpbmdUYWJsZSgp
LmFkZDxIYXNoQW5kQ2hhcmFjdGVycywgSGFzaEFuZENoYXJhY3RlcnNUcmFuc2xhdG9yPihidWZm
ZXIpOwotICAgIGlmICghYWRkUmVzdWx0LnNlY29uZCkKLSAgICAgICAgcmV0dXJuICphZGRSZXN1
bHQuZmlyc3Q7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCphZGRSZXN1bHQuZmlyc3QpOworCisgICAg
SGFzaEFuZENoYXJhY3RlcnMgYnVmZmVyID0geyBleGlzdGluZ0hhc2gsIHMsIGxlbmd0aCB9Owor
ICAgIHJldHVybiBhZGRJbnRvU3RyaW5nVGFibGU8SGFzaEFuZENoYXJhY3RlcnMsIEhhc2hBbmRD
aGFyYWN0ZXJzVHJhbnNsYXRvcj4oYnVmZmVyKTsKIH0KIAogUGFzc1JlZlB0cjxTdHJpbmdJbXBs
PiBBdG9taWNTdHJpbmc6OmFkZChjb25zdCBVQ2hhciogcykKQEAgLTMwMCwxMiArMzAxLDggQEAg
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6OmFkZChjb25zdCBVQ2hhciogcykK
ICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CiAK
LSAgICBVQ2hhckJ1ZmZlciBidWYgPSB7cywgbGVuZ3RofTsgCi0gICAgcGFpcjxIYXNoU2V0PFN0
cmluZ0ltcGwqPjo6aXRlcmF0b3IsIGJvb2w+IGFkZFJlc3VsdCA9IHN0cmluZ1RhYmxlKCkuYWRk
PFVDaGFyQnVmZmVyLCBVQ2hhckJ1ZmZlclRyYW5zbGF0b3I+KGJ1Zik7Ci0KLSAgICAvLyBJZiB0
aGUgc3RyaW5nIGlzIG5ld2x5LXRyYW5zbGF0ZWQsIHRoZW4gd2UgbmVlZCB0byBhZG9wdCBpdC4K
LSAgICAvLyBUaGUgYm9vbGVhbiBpbiB0aGUgcGFpciB0ZWxscyB1cyBpZiB0aGF0IGlzIHNvLgot
ICAgIHJldHVybiBhZGRSZXN1bHQuc2Vjb25kID8gYWRvcHRSZWYoKmFkZFJlc3VsdC5maXJzdCkg
OiAqYWRkUmVzdWx0LmZpcnN0OworICAgIFVDaGFyQnVmZmVyIGJ1ZmZlciA9IHsgcywgbGVuZ3Ro
IH07CisgICAgcmV0dXJuIGFkZEludG9TdHJpbmdUYWJsZTxVQ2hhckJ1ZmZlciwgVUNoYXJCdWZm
ZXJUcmFuc2xhdG9yPihidWZmZXIpOwogfQogCiBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IEF0b21p
Y1N0cmluZzo6YWRkU2xvd0Nhc2UoU3RyaW5nSW1wbCogcikKQEAgLTM3MCwxMiArMzY3LDggQEAg
QXRvbWljU3RyaW5nIEF0b21pY1N0cmluZzo6ZnJvbVVURjgoY29uc3QgY2hhciogY2hhcmFjdGVy
cywgc2l6ZV90IGxlbmd0aCkKICAgICBpZiAoIWJ1ZmZlci5oYXNoKQogICAgICAgICByZXR1cm4g
QXRvbWljU3RyaW5nKCk7CiAKLSAgICBwYWlyPEhhc2hTZXQ8U3RyaW5nSW1wbCo+OjppdGVyYXRv
ciwgYm9vbD4gYWRkUmVzdWx0ID0gc3RyaW5nVGFibGUoKS5hZGQ8SGFzaEFuZFVURjhDaGFyYWN0
ZXJzLCBIYXNoQW5kVVRGOENoYXJhY3RlcnNUcmFuc2xhdG9yPihidWZmZXIpOwotCi0gICAgLy8g
SWYgdGhlIHN0cmluZyBpcyBuZXdseS10cmFuc2xhdGVkLCB0aGVuIHdlIG5lZWQgdG8gYWRvcHQg
aXQuCi0gICAgLy8gVGhlIGJvb2xlYW4gaW4gdGhlIHBhaXIgdGVsbHMgdXMgaWYgdGhhdCBpcyBz
by4KICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nOwotICAgIGF0b21pY1N0cmluZy5tX3N0
cmluZyA9IGFkZFJlc3VsdC5zZWNvbmQgPyBhZG9wdFJlZigqYWRkUmVzdWx0LmZpcnN0KSA6ICph
ZGRSZXN1bHQuZmlyc3Q7CisgICAgYXRvbWljU3RyaW5nLm1fc3RyaW5nID0gYWRkSW50b1N0cmlu
Z1RhYmxlPEhhc2hBbmRVVEY4Q2hhcmFjdGVycywgSGFzaEFuZFVURjhDaGFyYWN0ZXJzVHJhbnNs
YXRvcj4oYnVmZmVyKTsKICAgICByZXR1cm4gYXRvbWljU3RyaW5nOwogfQogCg==
</data>
<flag name="review"
          id="69242"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78318</attachid>
            <date>2011-01-08 10:31:40 -0800</date>
            <delta_ts>2011-01-08 19:10:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51927.patch</filename>
            <type>text/plain</type>
            <size>5097</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDY5NTNkYWI4MzA4ZGVjNmIyZTI0ZDdmOGViYWM3
YjhkYWNiZjQ1YjYuLmZmMWVmNWZhMjQ1ZmRkZTdjNzY3YmE2MWUzZmJhZWRiNGM2NWFjY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAxLTA1ICBQYXRy
aWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFVuaWZ5IHN0cmluZyB0YWJsZSBhZGRpbmcgaW4gQXRv
bWljU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MTkyNworCisgICAgICAgIE1vdmUgY29kZSBmb3IgYWRkaW5nIGEgc3RyaW5nIGludG8gYSBz
ZXBhcmF0ZSBmdW5jdGlvbi4KKyAgICAgICAgVGhpcyByZW1vdmVzIG11bHRpcGxlIG9jY3VycmVu
Y2Ugb2YgdGhlIHNhbWUgbG9naWMuCisKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcu
Y3BwOgorICAgICAgICAoV1RGOjphZGRUb1N0cmluZ1RhYmxlKTogQWRkZWQuCisgICAgICAgIChX
VEY6OkF0b21pY1N0cmluZzo6YWRkKTogVXNlIGFkZFRvU3RyaW5nVGFibGUoKS4KKyAgICAgICAg
KFdURjo6QXRvbWljU3RyaW5nOjpmcm9tVVRGOCk6IERpdHRvLgorCiAyMDExLTAxLTAyICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkg
U2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L0F0b21pY1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWlj
U3RyaW5nLmNwcAppbmRleCA5M2FkMjFkODY1Y2E0MDBjYWE0YmI5ZWY5OWFjM2IwMzA2ZTBhMzU3
Li44ZThmYjFjNDlhMDgyZGY4MWU4ZDNhMGQxZThhMjU0MzkwNTYyZWI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcApAQCAtNzQsNiArNzQs
MTYgQEAgc3RhdGljIGlubGluZSBIYXNoU2V0PFN0cmluZ0ltcGwqPiYgc3RyaW5nVGFibGUoKQog
ICAgIHJldHVybiB0YWJsZS0+dGFibGUoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgSGFzaFRyYW5zbGF0b3I+CitzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gYWRkVG9TdHJpbmdUYWJsZShjb25zdCBUJiB2YWx1ZSkKK3sKKyAgICBwYWlyPEhhc2hTZXQ8
U3RyaW5nSW1wbCo+OjppdGVyYXRvciwgYm9vbD4gYWRkUmVzdWx0ID0gc3RyaW5nVGFibGUoKS5h
ZGQ8VCwgSGFzaFRyYW5zbGF0b3I+KHZhbHVlKTsKKworICAgIC8vIElmIHRoZSBzdHJpbmcgaXMg
bmV3bHktdHJhbnNsYXRlZCwgdGhlbiB3ZSBuZWVkIHRvIGFkb3B0IGl0LgorICAgIC8vIFRoZSBi
b29sZWFuIGluIHRoZSBwYWlyIHRlbGxzIHVzIGlmIHRoYXQgaXMgc28uCisgICAgcmV0dXJuIGFk
ZFJlc3VsdC5zZWNvbmQgPyBhZG9wdFJlZigqYWRkUmVzdWx0LmZpcnN0KSA6ICphZGRSZXN1bHQu
Zmlyc3Q7Cit9CisKIHN0cnVjdCBDU3RyaW5nVHJhbnNsYXRvciB7CiAgICAgc3RhdGljIHVuc2ln
bmVkIGhhc2goY29uc3QgY2hhciogYykKICAgICB7CkBAIC0xMTUsMTEgKzEyNSw5IEBAIFBhc3NS
ZWZQdHI8U3RyaW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGQoY29uc3QgY2hhciogYykKICAgICBp
ZiAoIWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghKmMpCi0gICAgICAgIHJldHVybiBT
dHJpbmdJbXBsOjplbXB0eSgpOyAgICAKLSAgICBwYWlyPEhhc2hTZXQ8U3RyaW5nSW1wbCo+Ojpp
dGVyYXRvciwgYm9vbD4gYWRkUmVzdWx0ID0gc3RyaW5nVGFibGUoKS5hZGQ8Y29uc3QgY2hhcios
IENTdHJpbmdUcmFuc2xhdG9yPihjKTsKLSAgICBpZiAoIWFkZFJlc3VsdC5zZWNvbmQpCi0gICAg
ICAgIHJldHVybiAqYWRkUmVzdWx0LmZpcnN0OwotICAgIHJldHVybiBhZG9wdFJlZigqYWRkUmVz
dWx0LmZpcnN0KTsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisKKyAgICBy
ZXR1cm4gYWRkVG9TdHJpbmdUYWJsZTxjb25zdCBjaGFyKiwgQ1N0cmluZ1RyYW5zbGF0b3I+KGMp
OwogfQogCiBzdHJ1Y3QgVUNoYXJCdWZmZXIgewpAQCAtMjY1LDEyICsyNzMsOCBAQCBQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+IEF0b21pY1N0cmluZzo6YWRkKGNvbnN0IFVDaGFyKiBzLCB1bnNpZ25l
ZCBsZW5ndGgpCiAgICAgaWYgKCFsZW5ndGgpCiAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpl
bXB0eSgpOwogICAgIAotICAgIFVDaGFyQnVmZmVyIGJ1ZiA9IHsgcywgbGVuZ3RoIH07IAotICAg
IHBhaXI8SGFzaFNldDxTdHJpbmdJbXBsKj46Oml0ZXJhdG9yLCBib29sPiBhZGRSZXN1bHQgPSBz
dHJpbmdUYWJsZSgpLmFkZDxVQ2hhckJ1ZmZlciwgVUNoYXJCdWZmZXJUcmFuc2xhdG9yPihidWYp
OwotCi0gICAgLy8gSWYgdGhlIHN0cmluZyBpcyBuZXdseS10cmFuc2xhdGVkLCB0aGVuIHdlIG5l
ZWQgdG8gYWRvcHQgaXQuCi0gICAgLy8gVGhlIGJvb2xlYW4gaW4gdGhlIHBhaXIgdGVsbHMgdXMg
aWYgdGhhdCBpcyBzby4KLSAgICByZXR1cm4gYWRkUmVzdWx0LnNlY29uZCA/IGFkb3B0UmVmKCph
ZGRSZXN1bHQuZmlyc3QpIDogKmFkZFJlc3VsdC5maXJzdDsKKyAgICBVQ2hhckJ1ZmZlciBidWZm
ZXIgPSB7IHMsIGxlbmd0aCB9OworICAgIHJldHVybiBhZGRUb1N0cmluZ1RhYmxlPFVDaGFyQnVm
ZmVyLCBVQ2hhckJ1ZmZlclRyYW5zbGF0b3I+KGJ1ZmZlcik7CiB9CiAKIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGQoY29uc3QgVUNoYXIqIHMsIHVuc2lnbmVkIGxlbmd0
aCwgdW5zaWduZWQgZXhpc3RpbmdIYXNoKQpAQCAtMjgwLDEyICsyODQsOSBAQCBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IEF0b21pY1N0cmluZzo6YWRkKGNvbnN0IFVDaGFyKiBzLCB1bnNpZ25lZCBs
ZW5ndGgsIHVuc2lnbgogCiAgICAgaWYgKCFsZW5ndGgpCiAgICAgICAgIHJldHVybiBTdHJpbmdJ
bXBsOjplbXB0eSgpOwotICAgIAotICAgIEhhc2hBbmRDaGFyYWN0ZXJzIGJ1ZmZlciA9IHsgZXhp
c3RpbmdIYXNoLCBzLCBsZW5ndGggfTsgCi0gICAgcGFpcjxIYXNoU2V0PFN0cmluZ0ltcGwqPjo6
aXRlcmF0b3IsIGJvb2w+IGFkZFJlc3VsdCA9IHN0cmluZ1RhYmxlKCkuYWRkPEhhc2hBbmRDaGFy
YWN0ZXJzLCBIYXNoQW5kQ2hhcmFjdGVyc1RyYW5zbGF0b3I+KGJ1ZmZlcik7Ci0gICAgaWYgKCFh
ZGRSZXN1bHQuc2Vjb25kKQotICAgICAgICByZXR1cm4gKmFkZFJlc3VsdC5maXJzdDsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKmFkZFJlc3VsdC5maXJzdCk7CisKKyAgICBIYXNoQW5kQ2hhcmFjdGVy
cyBidWZmZXIgPSB7IGV4aXN0aW5nSGFzaCwgcywgbGVuZ3RoIH07CisgICAgcmV0dXJuIGFkZFRv
U3RyaW5nVGFibGU8SGFzaEFuZENoYXJhY3RlcnMsIEhhc2hBbmRDaGFyYWN0ZXJzVHJhbnNsYXRv
cj4oYnVmZmVyKTsKIH0KIAogUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6OmFk
ZChjb25zdCBVQ2hhciogcykKQEAgLTMwMCwxMiArMzAxLDggQEAgUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiBBdG9taWNTdHJpbmc6OmFkZChjb25zdCBVQ2hhciogcykKICAgICBpZiAoIWxlbmd0aCkK
ICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CiAKLSAgICBVQ2hhckJ1ZmZlciBi
dWYgPSB7cywgbGVuZ3RofTsgCi0gICAgcGFpcjxIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0
b3IsIGJvb2w+IGFkZFJlc3VsdCA9IHN0cmluZ1RhYmxlKCkuYWRkPFVDaGFyQnVmZmVyLCBVQ2hh
ckJ1ZmZlclRyYW5zbGF0b3I+KGJ1Zik7Ci0KLSAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIG5ld2x5
LXRyYW5zbGF0ZWQsIHRoZW4gd2UgbmVlZCB0byBhZG9wdCBpdC4KLSAgICAvLyBUaGUgYm9vbGVh
biBpbiB0aGUgcGFpciB0ZWxscyB1cyBpZiB0aGF0IGlzIHNvLgotICAgIHJldHVybiBhZGRSZXN1
bHQuc2Vjb25kID8gYWRvcHRSZWYoKmFkZFJlc3VsdC5maXJzdCkgOiAqYWRkUmVzdWx0LmZpcnN0
OworICAgIFVDaGFyQnVmZmVyIGJ1ZmZlciA9IHsgcywgbGVuZ3RoIH07CisgICAgcmV0dXJuIGFk
ZFRvU3RyaW5nVGFibGU8VUNoYXJCdWZmZXIsIFVDaGFyQnVmZmVyVHJhbnNsYXRvcj4oYnVmZmVy
KTsKIH0KIAogUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6OmFkZFNsb3dDYXNl
KFN0cmluZ0ltcGwqIHIpCkBAIC0zNzAsMTIgKzM2Nyw4IEBAIEF0b21pY1N0cmluZyBBdG9taWNT
dHJpbmc6OmZyb21VVEY4KGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgpCiAg
ICAgaWYgKCFidWZmZXIuaGFzaCkKICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygpOwogCi0g
ICAgcGFpcjxIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0b3IsIGJvb2w+IGFkZFJlc3VsdCA9
IHN0cmluZ1RhYmxlKCkuYWRkPEhhc2hBbmRVVEY4Q2hhcmFjdGVycywgSGFzaEFuZFVURjhDaGFy
YWN0ZXJzVHJhbnNsYXRvcj4oYnVmZmVyKTsKLQotICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgbmV3
bHktdHJhbnNsYXRlZCwgdGhlbiB3ZSBuZWVkIHRvIGFkb3B0IGl0LgotICAgIC8vIFRoZSBib29s
ZWFuIGluIHRoZSBwYWlyIHRlbGxzIHVzIGlmIHRoYXQgaXMgc28uCiAgICAgQXRvbWljU3RyaW5n
IGF0b21pY1N0cmluZzsKLSAgICBhdG9taWNTdHJpbmcubV9zdHJpbmcgPSBhZGRSZXN1bHQuc2Vj
b25kID8gYWRvcHRSZWYoKmFkZFJlc3VsdC5maXJzdCkgOiAqYWRkUmVzdWx0LmZpcnN0OworICAg
IGF0b21pY1N0cmluZy5tX3N0cmluZyA9IGFkZFRvU3RyaW5nVGFibGU8SGFzaEFuZFVURjhDaGFy
YWN0ZXJzLCBIYXNoQW5kVVRGOENoYXJhY3RlcnNUcmFuc2xhdG9yPihidWZmZXIpOwogICAgIHJl
dHVybiBhdG9taWNTdHJpbmc7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>