<?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>136193</bug_id>
          
          <creation_ts>2014-08-22 21:36:40 -0700</creation_ts>
          <short_desc>Random Gamepad cleanup</short_desc>
          <delta_ts>2022-03-01 02:48:55 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>134076</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030890</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-08-22 21:36:40 -0700</bug_when>
    <thetext>Random Gamepad cleanup

Suggested as review feedback in https://bugs.webkit.org/show_bug.cgi?id=134386</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030891</commentid>
    <comment_count>1</comment_count>
      <attachid>237025</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-08-22 21:38:51 -0700</bug_when>
    <thetext>Created attachment 237025
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030929</commentid>
    <comment_count>2</comment_count>
      <attachid>237025</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-08-23 12:29:06 -0700</bug_when>
    <thetext>Comment on attachment 237025
Patch v1

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

&gt; Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp:79
&gt; +    if (index &gt;= m_gamepads.size() || !m_gamepads[index])
&gt; +        return adoptRef(*Gamepad::create(platformGamepad).leakRef());

This looks suspect. Why can&apos;t you just return what Gamepad::create() returns (you may have to chance Gamepad::create()  to return a PassRef&lt;&gt; I guess)?

&gt; Source/WebCore/page/DOMWindow.h:451
&gt; +#if ENABLE(GAMEPAD)
&gt; +        WeakPtr&lt;DOMWindow&gt; createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); }
&gt; +#endif

While Gamepad may be the only one using this right now, I don&apos;t think it makes sense to put this under #if ENABLE(GAMEPAD).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030930</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-08-23 13:37:34 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 237025 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=237025&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp:79
&gt; &gt; +    if (index &gt;= m_gamepads.size() || !m_gamepads[index])
&gt; &gt; +        return adoptRef(*Gamepad::create(platformGamepad).leakRef());
&gt; 
&gt; This looks suspect. Why can&apos;t you just return what Gamepad::create() returns (you may have to chance Gamepad::create()  to return a PassRef&lt;&gt; I guess)?

Right, and since we have to maintain a sparse Vector of Gamepads and we can&apos;t have null Ref&lt;&gt;s in that Vector, I think it makes more sense to keep Gamepad::create() returning PassRefPtr&lt;&gt; and play this trick here.

&gt; 
&gt; &gt; Source/WebCore/page/DOMWindow.h:451
&gt; &gt; +#if ENABLE(GAMEPAD)
&gt; &gt; +        WeakPtr&lt;DOMWindow&gt; createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); }
&gt; &gt; +#endif
&gt; 
&gt; While Gamepad may be the only one using this right now, I don&apos;t think it makes sense to put this under #if ENABLE(GAMEPAD).

Sure thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030931</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-08-23 13:40:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/172890</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237025</attachid>
            <date>2014-08-22 21:38:51 -0700</date>
            <delta_ts>2022-03-01 02:48:55 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9066</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNzZmMDYxLi5kM2U1ZjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDgtMjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJhbmRvbSBHYW1lcGFkIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNjE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoTm90IHRlc3RlZCB5ZXQsIGFuZCBubyBj
aGFuZ2UgaW4gYmVoYXZpb3IgYW55d2F5cykKKworICAgICAgICAtIFVzZSBET01XaW5kb3cgV2Vh
a1B0cnMgd2hlbiBpdGVyYXRpbmcKKyAgICAgICAgLSBNb3JlIHJlZmVyZW5jZXMgaW5zdGVhZCBv
ZiBwb2ludGVycworCisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRXZlbnQ6OkdhbWVwYWRFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R2Ft
ZXBhZEV2ZW50OjpjcmVhdGUpOgorCisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdh
bWVwYWREaXNjb25uZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZE1hbmFnZXI6Om1h
a2VHYW1lcGFkVmlzaWJsZSk6CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdh
bWVwYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6Z2FtZXBhZEZy
b21QbGF0Zm9ybUdhbWVwYWQpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6
Z2FtZXBhZEF0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZ2FtZXBhZC9OYXZp
Z2F0b3JHYW1lcGFkLmg6CisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OkRPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaDoKKwogMjAxNC0wOC0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbGVnYWN5IEluc3BlY3RvckZyb250ZW5kSG9zdCBt
ZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBh
ZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQu
Y3BwCmluZGV4IDViYWRmNDYuLmQ4ZWE3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuY3BwCkBAIC0zMyw5ICszMyw5IEBAIEdhbWVwYWRFdmVu
dDo6R2FtZXBhZEV2ZW50KCkKIHsKIH0KIAotR2FtZXBhZEV2ZW50OjpHYW1lcGFkRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEdhbWVwYWQqIGdhbWVwYWQpCitHYW1lcGFkRXZl
bnQ6OkdhbWVwYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgR2FtZXBhZCYg
Z2FtZXBhZCkKICAgICA6IEV2ZW50KGV2ZW50VHlwZSwgZmFsc2UsIGZhbHNlKQotICAgICwgbV9n
YW1lcGFkKGdhbWVwYWQpCisgICAgLCBtX2dhbWVwYWQoJmdhbWVwYWQpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuaAppbmRleCAyOWY3MDZk
Li4xNDJkMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2Ft
ZXBhZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRF
dmVudC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHYW1lcGFkRXZlbnQpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdhbWVw
YWRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBHYW1lcGFkKiBn
YW1lcGFkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdhbWVwYWRFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBHYW1lcGFkJiBnYW1lcGFkKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHYW1lcGFkRXZlbnQoZXZlbnRUeXBlLCBnYW1lcGFkKSk7
CiAgICAgfQpAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgR2FtZXBh
ZEV2ZW50KCk7Ci0gICAgZXhwbGljaXQgR2FtZXBhZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBHYW1lcGFkKik7CisgICAgZXhwbGljaXQgR2FtZXBhZEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBHYW1lcGFkJik7CiAgICAgR2FtZXBhZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBHYW1lcGFkRXZlbnRJbml0Jik7CiAKICAg
ICBSZWZQdHI8R2FtZXBhZD4gbV9nYW1lcGFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKaW5kZXggODFiYzk1ZC4uYzNlMDg2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3Bw
CkBAIC03NywxOCArNzcsMjEgQEAgdm9pZCBHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFk
Q29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGZvcm1HYW1lcGFkKQogCiB2b2lkIEdhbWVw
YWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJiBw
bGF0Zm9ybUdhbWVwYWQpCiB7Ci0gICAgVmVjdG9yPERPTVdpbmRvdyo+IGRvbVdpbmRvd1ZlY3Rv
cjsKLSAgICBjb3B5VG9WZWN0b3IobV9kb21XaW5kb3dzLCBkb21XaW5kb3dWZWN0b3IpOworICAg
IFZlY3RvcjxXZWFrUHRyPERPTVdpbmRvdz4+IHdlYWtXaW5kb3dzOworICAgIGZvciAoYXV0byog
ZG9tV2luZG93IDogbV9kb21XaW5kb3dzKQorICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQoZG9t
V2luZG93LT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAgSGFzaFNldDxOYXZpZ2F0b3JHYW1lcGFk
Kj4gbm90aWZpZWROYXZpZ2F0b3JzOwogCiAgICAgLy8gSGFuZGxlIHRoZSBkaXNjb25uZWN0IGZv
ciBhbGwgRE9NV2luZG93cyB3aXRoIGV2ZW50IGxpc3RlbmVycyBhbmQgdGhlaXIgTmF2aWdhdG9y
cy4KLSAgICBmb3IgKGF1dG8qIHdpbmRvdyA6IGRvbVdpbmRvd1ZlY3RvcikgeworICAgIGZvciAo
YXV0byYgd2luZG93IDogd2Vha1dpbmRvd3MpIHsKICAgICAgICAgLy8gRXZlbnQgZGlzcGF0Y2gg
bWlnaHQgaGF2ZSBtYWRlIHRoaXMgd2luZG93IGdvIGF3YXkuCi0gICAgICAgIGlmICghbV9kb21X
aW5kb3dzLmNvbnRhaW5zKHdpbmRvdykpCisgICAgICAgIGlmICghd2luZG93KQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgTmF2aWdhdG9yR2FtZXBhZCogbmF2aWdhdG9yID0gbmF2
aWdhdG9yR2FtZXBhZEZyb21ET01XaW5kb3cod2luZG93KTsKKyAgICAgICAgLy8gVGhpcyBET01X
aW5kb3cncyBOYXZpZ2F0b3IgbWlnaHQgbm90IGJlIGFjY2Vzc2libGUuIGUuZy4gVGhlIERPTVdp
bmRvdyBtaWdodCBiZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorICAgICAgICAvLyBJZiB0
aGlzIGhhcHBlbnMgdGhlIERPTVdpbmRvdyB3aWxsIG5vdCBnZXQgdGhpcyBnYW1lcGFkZGlzY29u
bmVjdGVkIGV2ZW50LgorICAgICAgICBOYXZpZ2F0b3JHYW1lcGFkKiBuYXZpZ2F0b3IgPSBuYXZp
Z2F0b3JHYW1lcGFkRnJvbURPTVdpbmRvdyh3aW5kb3cuZ2V0KCkpOwogICAgICAgICBpZiAoIW5h
dmlnYXRvcikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC05Niw4ICs5OSw3IEBAIHZvaWQg
R2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVw
YWQmIHBsYXRmb3JtR2FtZXBhCiAgICAgICAgIGlmIChtX2dhbWVwYWRCbGluZE5hdmlnYXRvcnMu
Y29udGFpbnMobmF2aWdhdG9yKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIFJl
ZlB0cjxHYW1lcGFkPiBnYW1lcGFkID0gbmF2aWdhdG9yLT5nYW1lcGFkQXRJbmRleChwbGF0Zm9y
bUdhbWVwYWQuaW5kZXgoKSk7Ci0gICAgICAgIEFTU0VSVChnYW1lcGFkKTsKKyAgICAgICAgUmVm
PEdhbWVwYWQ+IGdhbWVwYWQobmF2aWdhdG9yLT5nYW1lcGFkRnJvbVBsYXRmb3JtR2FtZXBhZChw
bGF0Zm9ybUdhbWVwYWQpKTsKIAogICAgICAgICBuYXZpZ2F0b3ItPmdhbWVwYWREaXNjb25uZWN0
ZWQocGxhdGZvcm1HYW1lcGFkKTsKICAgICAgICAgbm90aWZpZWROYXZpZ2F0b3JzLmFkZChuYXZp
Z2F0b3IpOwpAQCAtMTMyLDIxICsxMzQsMjMgQEAgdm9pZCBHYW1lcGFkTWFuYWdlcjo6bWFrZUdh
bWVwYWRWaXNpYmxlKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGZvcm1HYW1lcGFkLCBIYXNoU2UKICAg
ICBmb3IgKGF1dG8qIG5hdmlnYXRvciA6IG5hdmlnYXRvclNldCkKICAgICAgICAgbmF2aWdhdG9y
LT5nYW1lcGFkQ29ubmVjdGVkKHBsYXRmb3JtR2FtZXBhZCk7CiAKLSAgICBWZWN0b3I8RE9NV2lu
ZG93Kj4gZG9tV2luZG93VmVjdG9yOwotICAgIGNvcHlUb1ZlY3Rvcihkb21XaW5kb3dTZXQsIGRv
bVdpbmRvd1ZlY3Rvcik7CisgICAgVmVjdG9yPFdlYWtQdHI8RE9NV2luZG93Pj4gd2Vha1dpbmRv
d3M7CisgICAgZm9yIChhdXRvKiBkb21XaW5kb3cgOiBtX2RvbVdpbmRvd3MpCisgICAgICAgIHdl
YWtXaW5kb3dzLmFwcGVuZChkb21XaW5kb3ctPmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAgICBmb3Ig
KGF1dG8qIHdpbmRvdyA6IGRvbVdpbmRvd1ZlY3RvcikgeworICAgIGZvciAoYXV0byYgd2luZG93
IDogd2Vha1dpbmRvd3MpIHsKICAgICAgICAgLy8gRXZlbnQgZGlzcGF0Y2ggbWlnaHQgaGF2ZSBt
YWRlIHRoaXMgd2luZG93IGdvIGF3YXkuCi0gICAgICAgIGlmICghbV9kb21XaW5kb3dzLmNvbnRh
aW5zKHdpbmRvdykpCisgICAgICAgIGlmICghd2luZG93KQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgTmF2aWdhdG9yR2FtZXBhZCogbmF2aWdhdG9yID0gbmF2aWdhdG9yR2FtZXBh
ZEZyb21ET01XaW5kb3cod2luZG93KTsKKyAgICAgICAgLy8gVGhpcyBET01XaW5kb3cncyBOYXZp
Z2F0b3IgbWlnaHQgbm90IGJlIGFjY2Vzc2libGUuIGUuZy4gVGhlIERPTVdpbmRvdyBtaWdodCBi
ZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorICAgICAgICAvLyBJZiB0aGlzIGhhcHBlbnMg
dGhlIERPTVdpbmRvdyB3aWxsIG5vdCBnZXQgdGhpcyBnYW1lcGFkY29ubmVjdGVkIGV2ZW50Lgor
ICAgICAgICAvLyBUaGUgbmV3IGdhbWVwYWQgd2lsbCBzdGlsbCBiZSB2aXNpYmlsZSB0byBpdCBv
bmNlIGl0IGlzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKyAgICAgICAg
TmF2aWdhdG9yR2FtZXBhZCogbmF2aWdhdG9yID0gbmF2aWdhdG9yR2FtZXBhZEZyb21ET01XaW5k
b3cod2luZG93LmdldCgpKTsKICAgICAgICAgaWYgKCFuYXZpZ2F0b3IpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICBSZWZQdHI8R2FtZXBhZD4gZ2FtZXBhZCA9IG5hdmlnYXRvci0+
Z2FtZXBhZEF0SW5kZXgocGxhdGZvcm1HYW1lcGFkLmluZGV4KCkpOwotICAgICAgICBBU1NFUlQo
Z2FtZXBhZCk7Ci0KKyAgICAgICAgUmVmPEdhbWVwYWQ+IGdhbWVwYWQobmF2aWdhdG9yLT5nYW1l
cGFkRnJvbVBsYXRmb3JtR2FtZXBhZChwbGF0Zm9ybUdhbWVwYWQpKTsKICAgICAgICAgd2luZG93
LT5kaXNwYXRjaEV2ZW50KEdhbWVwYWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5nYW1lcGFk
Y29ubmVjdGVkRXZlbnQsIGdhbWVwYWQuZ2V0KCkpLCB3aW5kb3ctPmRvY3VtZW50KCkpOwogICAg
IH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0
b3JHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JH
YW1lcGFkLmNwcAppbmRleCA1OGE3Y2NiNC4uYTcxZmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAtNzIsMTEgKzcy
LDEzIEBAIE5hdmlnYXRvckdhbWVwYWQqIE5hdmlnYXRvckdhbWVwYWQ6OmZyb20oTmF2aWdhdG9y
KiBuYXZpZ2F0b3IpCiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CiAKLUdhbWVwYWQqIE5hdmln
YXRvckdhbWVwYWQ6OmdhbWVwYWRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQorUGFzc1JlZjxHYW1l
cGFkPiBOYXZpZ2F0b3JHYW1lcGFkOjpnYW1lcGFkRnJvbVBsYXRmb3JtR2FtZXBhZChQbGF0Zm9y
bUdhbWVwYWQmIHBsYXRmb3JtR2FtZXBhZCkKIHsKLSAgICBpZiAoaW5kZXggPj0gbV9nYW1lcGFk
cy5zaXplKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBtX2dhbWVwYWRz
W2luZGV4XS5nZXQoKTsKKyAgICB1bnNpZ25lZCBpbmRleCA9IHBsYXRmb3JtR2FtZXBhZC5pbmRl
eCgpOworICAgIGlmIChpbmRleCA+PSBtX2dhbWVwYWRzLnNpemUoKSB8fCAhbV9nYW1lcGFkc1tp
bmRleF0pCisgICAgICAgIHJldHVybiBhZG9wdFJlZigqR2FtZXBhZDo6Y3JlYXRlKHBsYXRmb3Jt
R2FtZXBhZCkubGVha1JlZigpKTsKKworICAgIHJldHVybiAqbV9nYW1lcGFkc1tpbmRleF07CiB9
CiAKIGNvbnN0IFZlY3RvcjxSZWZQdHI8R2FtZXBhZD4+JiBOYXZpZ2F0b3JHYW1lcGFkOjpnZXRH
YW1lcGFkcyhOYXZpZ2F0b3IqIG5hdmlnYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oCmluZGV4IDczNGQ3ODcuLmUzNjkwY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFk
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQu
aApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnYW1lcGFkQ29ubmVjdGVkKFBs
YXRmb3JtR2FtZXBhZCYpOwogICAgIHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdh
bWVwYWQmKTsKIAotICAgIEdhbWVwYWQqIGdhbWVwYWRBdEluZGV4KHVuc2lnbmVkIGluZGV4KTsK
KyAgICBQYXNzUmVmPEdhbWVwYWQ+IGdhbWVwYWRGcm9tUGxhdGZvcm1HYW1lcGFkKFBsYXRmb3Jt
R2FtZXBhZCYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGZmMzliOTQuLmYwNGFmOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTQwMSw2ICs0MDEsNyBAQCBET01XaW5k
b3c6OkRPTVdpbmRvdyhEb2N1bWVudCogZG9jdW1lbnQpCiAjZW5kaWYKICNpZiBFTkFCTEUoR0FN
RVBBRCkKICAgICAsIG1fZ2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgwKQorICAgICwgbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQogI2VuZGlmCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKaW5kZXggOTdhMTU1Mi4uOWY4OTNmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNp
bmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsK
QEAgLTQ0NSw2ICs0NDYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGVu
YWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1p
bmF0aW9uKCk7CiAKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAgICAgICAgV2Vha1B0cjxET01XaW5k
b3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQorI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBET01XaW5k
b3coRG9jdW1lbnQqKTsKIApAQCAtNTA0LDYgKzUwOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgICAgICB1bnNpZ25lZCBtX2dhbWVwYWRFdmVudExp
c3RlbmVyQ291bnQ7CisgICAgICAgIFdlYWtQdHJGYWN0b3J5PERPTVdpbmRvdz4gbV93ZWFrUHRy
RmFjdG9yeTsKICNlbmRpZgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTdG9yYWdlPiBtX3Nlc3Np
b25TdG9yYWdlOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTdG9yYWdlPiBtX2xvY2FsU3RvcmFn
ZTsK
</data>
<flag name="review"
          id="261732"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>