<?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>54902</bug_id>
          
          <creation_ts>2011-02-21 12:52:47 -0800</creation_ts>
          <short_desc>[Qt] [WK2] Improve the memory handling of the context menu for WebKit 2</short_desc>
          <delta_ts>2011-02-22 05:25: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>WebKit2</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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354753</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-21 12:52:47 -0800</bug_when>
    <thetext>Currently, the QWKPage emit a signal when the context menu should be shown, a pointer to the menu being passed as parameter. The memory is handled by the receiver of the signal.

I did the design that way because the WebKit 2 apis do not prevent showContextMenu() from being called multiple time.

I now think it was a mistake because that make memory handling unreliable, and couple QGraphicsWKView and QWKPage via signals, which is a terrible idea... For example, disconnecting the default signal-slot connexion leaks the menus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354756</commentid>
    <comment_count>1</comment_count>
      <attachid>83208</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-21 12:59:43 -0800</bug_when>
    <thetext>Created attachment 83208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355104</commentid>
    <comment_count>2</comment_count>
      <attachid>83208</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-02-22 00:37:46 -0800</bug_when>
    <thetext>Comment on attachment 83208
Patch

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

&gt; Source/WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp:97
&gt; +    OwnPtr&lt;QMenu&gt; menu(new QMenu);

Why not create this as a PassOwnPtr? like in the PassRefPtr example here? http://www.webkit.org/coding/RefPtr.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355150</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-22 02:34:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Why not create this as a PassOwnPtr? like in the PassRefPtr example here? http://www.webkit.org/coding/RefPtr.html

I think the semantic of OwnPtr is better than PassPtr for this function.

In the doc you mention, on top of the example, there is 
// example, not preferred style; should use RefCounted and adoptRef (see below)

 there is &quot;we recommend PassRefPtr only for function argument and result types&quot; in the text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355151</commentid>
    <comment_count>4</comment_count>
      <attachid>83208</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-22 02:35:27 -0800</bug_when>
    <thetext>Comment on attachment 83208
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp:97
&gt;&gt; +    OwnPtr&lt;QMenu&gt; menu(new QMenu);
&gt; 
&gt; Why not create this as a PassOwnPtr? like in the PassRefPtr example here? http://www.webkit.org/coding/RefPtr.html

This should use adoptPtr() or it won&apos;t build without LOOSE_PASS_OWN_PTR defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355180</commentid>
    <comment_count>5</comment_count>
      <attachid>83299</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-22 04:33:16 -0800</bug_when>
    <thetext>Created attachment 83299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355199</commentid>
    <comment_count>6</comment_count>
      <attachid>83299</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 05:25:30 -0800</bug_when>
    <thetext>Comment on attachment 83299
Patch

Clearing flags on attachment: 83299

Committed r79316: &lt;http://trac.webkit.org/changeset/79316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355200</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 05:25:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83208</attachid>
            <date>2011-02-21 12:59:43 -0800</date>
            <delta_ts>2011-02-22 04:33:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54902-20110221220909.patch</filename>
            <type>text/plain</type>
            <size>8551</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg3MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MmU2ZTU4YWMyMWI4MTMz
MzllNTI0NzYwYjY0ZTEwYjczMzA2MDE3Li5jZjk5OGMwZGY2ZjRjOTNmNDViZDU5N2U5MjhjZTgy
NzI0NDAwNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMjEgIEJlbmph
bWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFtXSzJdIEltcHJvdmUgdGhl
IG1lbW9yeSBoYW5kbGluZyBvZiB0aGUgY29udGV4dCBtZW51IGZvciBXZWJLaXQgMgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ5MDIKKworICAgICAg
ICBSZWZhY3RvciB0aGUgY29udGV4dCBtZW51IGhhbmRsaW5nIG9mIFF0IHRvIG1ha2UgaXQgc2lt
cGxlciB0byBtYW5hZ2UgbWVtb3J5LgorCisgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHlRdCB1
c2VzIHNtYXJ0IHBvaW50ZXIgZm9yIGFsbCB0aGUgcmVmZXJlbmNlcyB0byBtZW51IHNvCisgICAg
ICAgIHRoZXJlIGlzIG5vIG5lZWQgdG8gZGVsZXRlIGl0IGV4cGxpY2l0ZWx5LgorCisgICAgICAg
IFBhc3NpbmcgdGhlIFFNZW51IGZyb20gUVdLUGFnZSB0byB0aGUgY2xpZW50IG9mIHRoZSBzaWdu
YWwgbm93IHVzZXMgYSBRU2hhcmVkUG9pbnRlciBzbworICAgICAgICB0aGUgY2xpZW50IGNhbiBj
aG9vc2UgdG8gaGFuZGxlIHRoZSBtZW1vcnksIGJ1dCB0aGVyZSBpcyBubyBsZWFrIGlmIGl0IGRv
ZXMgbm90LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3Bw
OgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3OjpzaG93Q29udGV4dE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcWdyYXBoaWNzd2t2aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlRdDo6c2hvd0NvbnRleHRNZW51
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGVDb250ZXh0
TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oOgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcAppbmRleCA3NDhiMWJkZGMyNTA3MzIz
MDI1ZjJhYmJlYzkyNWY2MWQxN2VjNjM0Li45NDk3ZjcwZWNiOGVjNmM3YjEyYzZlNjU3NWU2NWVm
MGI2YzAxY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fn
cmFwaGljc3drdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
Z3JhcGhpY3N3a3ZpZXcuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCBRR3JhcGhpY3NXS1Zp
ZXdQcml2YXRlIHsKIAogICAgIFFHcmFwaGljc1dLVmlldyogcTsKICAgICBRV0tQYWdlKiBwYWdl
OwotICAgIFFNZW51KiBhY3RpdmVNZW51OworICAgIFFTaGFyZWRQb2ludGVyPFFNZW51PiBhY3Rp
dmVNZW51OwogICAgIFJ1bkxvb3A6OlRpbWVyPFFHcmFwaGljc1dLVmlld1ByaXZhdGU+IG1fc2Nh
bGVDb21taXRUaW1lcjsKICAgICBib29sIG1faXNDaGFuZ2luZ1NjYWxlOwogfTsKQEAgLTgzLDcg
KzgzLDcgQEAgUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcoUVdLQ29udGV4dCogY29u
dGV4dCwgQmFja2luZ1N0b3JlVHlwZSBiYWNraW5nU3QKICAgICBjb25uZWN0KGQtPnBhZ2UsIFNJ
R05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmKSksIHRoaXMsIFNJR05BTCh1cmxDaGFuZ2VkKGNv
bnN0IFFVcmwmKSkpOwogICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGN1cnNvckNoYW5nZWQo
Y29uc3QgUUN1cnNvciYpKSwgdGhpcywgU0xPVCh1cGRhdGVDdXJzb3IoY29uc3QgUUN1cnNvciYp
KSk7CiAgICAgY29ubmVjdChkLT5wYWdlLCBTSUdOQUwoZm9jdXNOZXh0UHJldkNoaWxkKGJvb2wp
KSwgdGhpcywgU0xPVChmb2N1c05leHRQcmV2Q2hpbGRDYWxsYmFjayhib29sKSkpOwotICAgIGNv
bm5lY3QoZC0+cGFnZSwgU0lHTkFMKHNob3dDb250ZXh0TWVudShRTWVudSopKSwgdGhpcywgU0xP
VChzaG93Q29udGV4dE1lbnUoUU1lbnUqKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFM
KHNob3dDb250ZXh0TWVudShRU2hhcmVkUG9pbnRlcjxRTWVudT4pKSwgdGhpcywgU0xPVChzaG93
Q29udGV4dE1lbnUoUVNoYXJlZFBvaW50ZXI8UU1lbnU+KSkpOwogfQogCiBRR3JhcGhpY3NXS1Zp
ZXc6On5RR3JhcGhpY3NXS1ZpZXcoKQpAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgUUdyYXBoaWNz
V0tWaWV3Ojpmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50KikKICAgICBwYWdlKCktPmQtPnBhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdl
UHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CiB9CiAKLXZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpz
aG93Q29udGV4dE1lbnUoUU1lbnUqIG1lbnUpCit2b2lkIFFHcmFwaGljc1dLVmlldzo6c2hvd0Nv
bnRleHRNZW51KFFTaGFyZWRQb2ludGVyPFFNZW51PiBtZW51KQogewogICAgIC8vIFJlbW92ZSB0
aGUgYWN0aXZlIG1lbnUgaW4gY2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0d2ljZS4KICAg
ICBpZiAoZC0+YWN0aXZlTWVudSkKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFFHcmFwaGljc1dL
Vmlldzo6c2hvd0NvbnRleHRNZW51KFFNZW51KiBtZW51KQogICAgICAgICBtZW51LT5zZXRQYXJl
bnQodmlldywgbWVudS0+d2luZG93RmxhZ3MoKSk7CiAgICAgbWVudS0+ZXhlYyh2aWV3LT5tYXBU
b0dsb2JhbChtZW51LT5wb3MoKSkpOwogICAgIGlmIChkLT5hY3RpdmVNZW51ID09IG1lbnUpCi0g
ICAgICAgIGQtPmFjdGl2ZU1lbnUgPSAwOworICAgICAgICBkLT5hY3RpdmVNZW51LmNsZWFyKCk7
CiB9CiAKIHZvaWQgUUdyYXBoaWNzV0tWaWV3Ojp0YWtlU25hcHNob3QoY29uc3QgUVNpemUmIHNp
emUsIGNvbnN0IFFSZWN0JiBjb250ZW50c1JlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaAppbmRleCBjYWY4ZTBkZWYzMjM3ODc5ZWYx
MjdmNTczNjc2MzA1ZGEwOTAzNzRmLi4wNzBjYmVkMGMzNDk2OWU0OWM3MTljNDlmMzI0YzM5ZWM4
MGYwYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFw
aGljc3drdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBo
aWNzd2t2aWV3LmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50Kik7CiAKIHByaXZhdGUgUV9TTE9UUzoKLSAgICB2
b2lkIHNob3dDb250ZXh0TWVudShRTWVudSopOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFFT
aGFyZWRQb2ludGVyPFFNZW51Pik7CiAKIHByaXZhdGU6CiAgICAgUV9QUklWQVRFX1NMT1QoZCwg
dm9pZCBvblNjYWxlQ2hhbmdlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2twYWdlLmgKaW5kZXggY2I3OTMzYWVlNTA4MTc2NzI4ZjgyNjFmMDkxZDE5NGM2ODhiZmJjMy4u
NDhmZGQ5ZjFjZDk4ZjUzNzdkNTEyMzFjMzYyZjlkZTdkN2IxZDY0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKQEAgLTMsNiArMyw3IEBACiAKICNpbmNsdWRl
ICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UUFjdGlvbj4KKyNpbmNsdWRlIDxRTWVudT4K
ICNpbmNsdWRlIDxRT2JqZWN0PgogI2luY2x1ZGUgPFFQb2ludD4KICNpbmNsdWRlIDxRUmVjdD4K
QEAgLTEzNCw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgUV9TSUdOQUwgdm9pZCB3aW5kb3dDbG9z
ZVJlcXVlc3RlZCgpOwogICAgIFFfU0lHTkFMIHZvaWQgem9vbWFibGVBcmVhRm91bmQoY29uc3Qg
UVJlY3QmKTsKICAgICBRX1NJR05BTCB2b2lkIGZvY3VzTmV4dFByZXZDaGlsZChib29sKTsKLSAg
ICBRX1NJR05BTCB2b2lkIHNob3dDb250ZXh0TWVudShRTWVudSopOworICAgIFFfU0lHTkFMIHZv
aWQgc2hvd0NvbnRleHRNZW51KFFTaGFyZWRQb2ludGVyPFFNZW51Pik7CiAgICAgUV9TSUdOQUwg
dm9pZCBlbmdpbmVDb25uZWN0aW9uQ2hhbmdlZChib29sIGNvbm5lY3RlZCk7CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVu
dVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51
UHJveHlRdC5jcHAKaW5kZXggMDk2MzhiNjRiNzA1NDQzOTU0MDhlYjdmN2UyYzRhYmFhZjFjMWRj
Ni4uZmRmOGJjMTM0N2NhNDhkM2NlNDA2NTU0MzA0YzQ4Y2MxM2Y3NzJjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5UXQuaCIKIAog
I2luY2x1ZGUgPEludFBvaW50Lmg+CisjaW5jbHVkZSA8T3duUHRyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oPgogI2luY2x1ZGUgPHFtZW51Lmg+CiAjaW5jbHVkZSA8cXdr
cGFnZS5oPgpAQCAtODEsOSArODIsOSBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHlR
dD4gV2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGUoUVdLUGFnZSogcGFnZSkKIAogdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5UXQ6OnNob3dDb250ZXh0TWVudShjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpCiB7Ci0g
ICAgaWYgKFFNZW51KiBtZW51ID0gY3JlYXRlQ29udGV4dE1lbnUoaXRlbXMpKSB7CisgICAgaWYg
KE93blB0cjxRTWVudT4gbWVudSA9IGNyZWF0ZUNvbnRleHRNZW51KGl0ZW1zKSkgewogICAgICAg
ICBtZW51LT5tb3ZlKHBvc2l0aW9uKTsKLSAgICAgICAgZW1pdCBtX3BhZ2UtPnNob3dDb250ZXh0
TWVudShtZW51KTsKKyAgICAgICAgZW1pdCBtX3BhZ2UtPnNob3dDb250ZXh0TWVudShRU2hhcmVk
UG9pbnRlcjxRTWVudT4obWVudS5sZWFrUHRyKCkpKTsKICAgICB9CiB9CiAKQEAgLTkxLDkgKzky
LDkgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmhpZGVDb250ZXh0TWVudSgpCiB7CiB9
CiAKLVFNZW51KiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZUNvbnRleHRNZW51KGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpCitQYXNzT3duUHRyPFFNZW51
PiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZUNvbnRleHRNZW51KGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpIGNvbnN0CiB7Ci0gICAgUU1lbnUqIG1lbnUg
PSBuZXcgUU1lbnU7CisgICAgT3duUHRyPFFNZW51PiBtZW51KG5ldyBRTWVudSk7CiAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkgewogICAgICAgICBjb25zdCBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtID0gaXRlbXMuYXQoaSk7CiAgICAgICAgIHN3aXRjaCAo
aXRlbS50eXBlKCkpIHsKQEAgLTExNCw5ICsxMTUsMTEgQEAgUU1lbnUqIFdlYkNvbnRleHRNZW51
UHJveHlRdDo6Y3JlYXRlQ29udGV4dE1lbnUoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRl
bUQKICAgICAgICAgICAgIG1lbnUtPmFkZFNlcGFyYXRvcigpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6Ci0gICAgICAgICAgICBpZiAoUU1l
bnUgKnN1Yk1lbnUgPSBjcmVhdGVDb250ZXh0TWVudShpdGVtLnN1Ym1lbnUoKSkpIHsKKyAgICAg
ICAgICAgIGlmIChPd25QdHI8UU1lbnU+IHN1Yk1lbnUgPSBjcmVhdGVDb250ZXh0TWVudShpdGVt
LnN1Ym1lbnUoKSkpIHsKKyAgICAgICAgICAgICAgICBzdWJNZW51LT5zZXRQYXJlbnQobWVudS5n
ZXQoKSk7CisgICAgICAgICAgICAgICAgUU1lbnUqIGNvbnN0IHN1Yk1lbnVQdHIgPSBzdWJNZW51
LmxlYWtQdHIoKTsKICAgICAgICAgICAgICAgICBzdWJNZW51LT5zZXRUaXRsZShpdGVtLnRpdGxl
KCkpOwotICAgICAgICAgICAgICAgIG1lbnUtPmFkZEFjdGlvbihzdWJNZW51LT5tZW51QWN0aW9u
KCkpOworICAgICAgICAgICAgICAgIG1lbnUtPmFkZE1lbnUoc3ViTWVudVB0cik7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTI0LDIyICsxMjcsMTkgQEAgUU1lbnUq
IFdlYkNvbnRleHRNZW51UHJveHlRdDo6Y3JlYXRlQ29udGV4dE1lbnUoY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW51SXRlbUQKICAgICB9CiAKICAgICAvLyBEbyBub3Qgc2hvdyBzdWItbWVudXMg
d2l0aCBqdXN0IGRpc2FibGVkIGFjdGlvbnMuCi0gICAgaWYgKG1lbnUtPmlzRW1wdHkoKSkgewot
ICAgICAgICBkZWxldGUgbWVudTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQorICAgIGlmICht
ZW51LT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFFNZW51PigpOworCiAg
ICAgYm9vbCBpc0FueUFjdGlvbkVuYWJsZWQgPSBmYWxzZTsKICAgICBRTGlzdDxRQWN0aW9uICo+
IGFjdGlvbnMgPSBtZW51LT5hY3Rpb25zKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhY3Rp
b25zLmNvdW50KCk7ICsraSkgewogICAgICAgICBpZiAoYWN0aW9ucy5hdChpKS0+aXNWaXNpYmxl
KCkpCiAgICAgICAgICAgICBpc0FueUFjdGlvbkVuYWJsZWQgfD0gYWN0aW9ucy5hdChpKS0+aXNF
bmFibGVkKCk7CiAgICAgfQotICAgIGlmICghaXNBbnlBY3Rpb25FbmFibGVkKSB7Ci0gICAgICAg
IGRlbGV0ZSBtZW51OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgaWYgKCFpc0FueUFj
dGlvbkVuYWJsZWQpCisgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFFNZW51PigpOwogCi0gICAg
cmV0dXJuIG1lbnU7CisgICAgcmV0dXJuIG1lbnUucmVsZWFzZSgpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJD
b250ZXh0TWVudVByb3h5UXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0TWVudVByb3h5UXQuaAppbmRleCA0MzUyMDRmZDYzZDU4NmM4OWM3MDA5NzZlZTU1ZGE2MmNj
Nzk1ZmI1Li42MGQ4M2E1N2MwNTM5MzgzM2UzOWFlYmQwZTI4OWMzNWEyYTY4NWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjZGVmaW5lIFdlYkNvbnRleHRNZW51UHJveHlRdF9oCiAKICNp
bmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCisjaW5jbHVkZSA8UGFzc093blB0ci5oPgog
CiBjbGFzcyBRTWVudTsKIGNsYXNzIFFXS1BhZ2U7CkBAIC00NSw3ICs0Niw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYpOwogICAgIHZpcnR1YWwg
dm9pZCBoaWRlQ29udGV4dE1lbnUoKTsKIAotICAgIFFNZW51KiBjcmVhdGVDb250ZXh0TWVudShj
b25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zKTsKKyAgICBQYXNzT3du
UHRyPFFNZW51PiBjcmVhdGVDb250ZXh0TWVudShjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4mIGl0ZW1zKSBjb25zdDsKIAogICAgIFFXS1BhZ2UqIGNvbnN0IG1fcGFnZTsKIH07
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83299</attachid>
            <date>2011-02-22 04:33:16 -0800</date>
            <delta_ts>2011-02-22 05:25:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54902-20110222134243.patch</filename>
            <type>text/plain</type>
            <size>8562</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg3MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MmU2ZTU4YWMyMWI4MTMz
MzllNTI0NzYwYjY0ZTEwYjczMzA2MDE3Li5jZjk5OGMwZGY2ZjRjOTNmNDViZDU5N2U5MjhjZTgy
NzI0NDAwNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMjEgIEJlbmph
bWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFtXSzJdIEltcHJvdmUgdGhl
IG1lbW9yeSBoYW5kbGluZyBvZiB0aGUgY29udGV4dCBtZW51IGZvciBXZWJLaXQgMgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ5MDIKKworICAgICAg
ICBSZWZhY3RvciB0aGUgY29udGV4dCBtZW51IGhhbmRsaW5nIG9mIFF0IHRvIG1ha2UgaXQgc2lt
cGxlciB0byBtYW5hZ2UgbWVtb3J5LgorCisgICAgICAgIFdlYkNvbnRleHRNZW51UHJveHlRdCB1
c2VzIHNtYXJ0IHBvaW50ZXIgZm9yIGFsbCB0aGUgcmVmZXJlbmNlcyB0byBtZW51IHNvCisgICAg
ICAgIHRoZXJlIGlzIG5vIG5lZWQgdG8gZGVsZXRlIGl0IGV4cGxpY2l0ZWx5LgorCisgICAgICAg
IFBhc3NpbmcgdGhlIFFNZW51IGZyb20gUVdLUGFnZSB0byB0aGUgY2xpZW50IG9mIHRoZSBzaWdu
YWwgbm93IHVzZXMgYSBRU2hhcmVkUG9pbnRlciBzbworICAgICAgICB0aGUgY2xpZW50IGNhbiBj
aG9vc2UgdG8gaGFuZGxlIHRoZSBtZW1vcnksIGJ1dCB0aGVyZSBpcyBubyBsZWFrIGlmIGl0IGRv
ZXMgbm90LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3Bw
OgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3OjpzaG93Q29udGV4dE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcWdyYXBoaWNzd2t2aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlRdDo6c2hvd0NvbnRleHRNZW51
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGVDb250ZXh0
TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oOgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcAppbmRleCA3NDhiMWJkZGMyNTA3MzIz
MDI1ZjJhYmJlYzkyNWY2MWQxN2VjNjM0Li45NDk3ZjcwZWNiOGVjNmM3YjEyYzZlNjU3NWU2NWVm
MGI2YzAxY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fn
cmFwaGljc3drdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
Z3JhcGhpY3N3a3ZpZXcuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCBRR3JhcGhpY3NXS1Zp
ZXdQcml2YXRlIHsKIAogICAgIFFHcmFwaGljc1dLVmlldyogcTsKICAgICBRV0tQYWdlKiBwYWdl
OwotICAgIFFNZW51KiBhY3RpdmVNZW51OworICAgIFFTaGFyZWRQb2ludGVyPFFNZW51PiBhY3Rp
dmVNZW51OwogICAgIFJ1bkxvb3A6OlRpbWVyPFFHcmFwaGljc1dLVmlld1ByaXZhdGU+IG1fc2Nh
bGVDb21taXRUaW1lcjsKICAgICBib29sIG1faXNDaGFuZ2luZ1NjYWxlOwogfTsKQEAgLTgzLDcg
KzgzLDcgQEAgUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcoUVdLQ29udGV4dCogY29u
dGV4dCwgQmFja2luZ1N0b3JlVHlwZSBiYWNraW5nU3QKICAgICBjb25uZWN0KGQtPnBhZ2UsIFNJ
R05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmKSksIHRoaXMsIFNJR05BTCh1cmxDaGFuZ2VkKGNv
bnN0IFFVcmwmKSkpOwogICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGN1cnNvckNoYW5nZWQo
Y29uc3QgUUN1cnNvciYpKSwgdGhpcywgU0xPVCh1cGRhdGVDdXJzb3IoY29uc3QgUUN1cnNvciYp
KSk7CiAgICAgY29ubmVjdChkLT5wYWdlLCBTSUdOQUwoZm9jdXNOZXh0UHJldkNoaWxkKGJvb2wp
KSwgdGhpcywgU0xPVChmb2N1c05leHRQcmV2Q2hpbGRDYWxsYmFjayhib29sKSkpOwotICAgIGNv
bm5lY3QoZC0+cGFnZSwgU0lHTkFMKHNob3dDb250ZXh0TWVudShRTWVudSopKSwgdGhpcywgU0xP
VChzaG93Q29udGV4dE1lbnUoUU1lbnUqKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFM
KHNob3dDb250ZXh0TWVudShRU2hhcmVkUG9pbnRlcjxRTWVudT4pKSwgdGhpcywgU0xPVChzaG93
Q29udGV4dE1lbnUoUVNoYXJlZFBvaW50ZXI8UU1lbnU+KSkpOwogfQogCiBRR3JhcGhpY3NXS1Zp
ZXc6On5RR3JhcGhpY3NXS1ZpZXcoKQpAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgUUdyYXBoaWNz
V0tWaWV3Ojpmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50KikKICAgICBwYWdlKCktPmQtPnBhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdl
UHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CiB9CiAKLXZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpz
aG93Q29udGV4dE1lbnUoUU1lbnUqIG1lbnUpCit2b2lkIFFHcmFwaGljc1dLVmlldzo6c2hvd0Nv
bnRleHRNZW51KFFTaGFyZWRQb2ludGVyPFFNZW51PiBtZW51KQogewogICAgIC8vIFJlbW92ZSB0
aGUgYWN0aXZlIG1lbnUgaW4gY2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0d2ljZS4KICAg
ICBpZiAoZC0+YWN0aXZlTWVudSkKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFFHcmFwaGljc1dL
Vmlldzo6c2hvd0NvbnRleHRNZW51KFFNZW51KiBtZW51KQogICAgICAgICBtZW51LT5zZXRQYXJl
bnQodmlldywgbWVudS0+d2luZG93RmxhZ3MoKSk7CiAgICAgbWVudS0+ZXhlYyh2aWV3LT5tYXBU
b0dsb2JhbChtZW51LT5wb3MoKSkpOwogICAgIGlmIChkLT5hY3RpdmVNZW51ID09IG1lbnUpCi0g
ICAgICAgIGQtPmFjdGl2ZU1lbnUgPSAwOworICAgICAgICBkLT5hY3RpdmVNZW51LmNsZWFyKCk7
CiB9CiAKIHZvaWQgUUdyYXBoaWNzV0tWaWV3Ojp0YWtlU25hcHNob3QoY29uc3QgUVNpemUmIHNp
emUsIGNvbnN0IFFSZWN0JiBjb250ZW50c1JlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaAppbmRleCBjYWY4ZTBkZWYzMjM3ODc5ZWYx
MjdmNTczNjc2MzA1ZGEwOTAzNzRmLi4wNzBjYmVkMGMzNDk2OWU0OWM3MTljNDlmMzI0YzM5ZWM4
MGYwYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFw
aGljc3drdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBo
aWNzd2t2aWV3LmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50Kik7CiAKIHByaXZhdGUgUV9TTE9UUzoKLSAgICB2
b2lkIHNob3dDb250ZXh0TWVudShRTWVudSopOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFFT
aGFyZWRQb2ludGVyPFFNZW51Pik7CiAKIHByaXZhdGU6CiAgICAgUV9QUklWQVRFX1NMT1QoZCwg
dm9pZCBvblNjYWxlQ2hhbmdlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2twYWdlLmgKaW5kZXggY2I3OTMzYWVlNTA4MTc2NzI4ZjgyNjFmMDkxZDE5NGM2ODhiZmJjMy4u
NDhmZGQ5ZjFjZDk4ZjUzNzdkNTEyMzFjMzYyZjlkZTdkN2IxZDY0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKQEAgLTMsNiArMyw3IEBACiAKICNpbmNsdWRl
ICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UUFjdGlvbj4KKyNpbmNsdWRlIDxRTWVudT4K
ICNpbmNsdWRlIDxRT2JqZWN0PgogI2luY2x1ZGUgPFFQb2ludD4KICNpbmNsdWRlIDxRUmVjdD4K
QEAgLTEzNCw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgUV9TSUdOQUwgdm9pZCB3aW5kb3dDbG9z
ZVJlcXVlc3RlZCgpOwogICAgIFFfU0lHTkFMIHZvaWQgem9vbWFibGVBcmVhRm91bmQoY29uc3Qg
UVJlY3QmKTsKICAgICBRX1NJR05BTCB2b2lkIGZvY3VzTmV4dFByZXZDaGlsZChib29sKTsKLSAg
ICBRX1NJR05BTCB2b2lkIHNob3dDb250ZXh0TWVudShRTWVudSopOworICAgIFFfU0lHTkFMIHZv
aWQgc2hvd0NvbnRleHRNZW51KFFTaGFyZWRQb2ludGVyPFFNZW51Pik7CiAgICAgUV9TSUdOQUwg
dm9pZCBlbmdpbmVDb25uZWN0aW9uQ2hhbmdlZChib29sIGNvbm5lY3RlZCk7CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVu
dVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51
UHJveHlRdC5jcHAKaW5kZXggMDk2MzhiNjRiNzA1NDQzOTU0MDhlYjdmN2UyYzRhYmFhZjFjMWRj
Ni4uODY4ZWFhOWU1MjZmNTNkMjZlZjZjMDAzOGYxY2Y3NWNlOGQ2YjY2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5UXQuaCIKIAog
I2luY2x1ZGUgPEludFBvaW50Lmg+CisjaW5jbHVkZSA8T3duUHRyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oPgogI2luY2x1ZGUgPHFtZW51Lmg+CiAjaW5jbHVkZSA8cXdr
cGFnZS5oPgpAQCAtODEsOSArODIsOSBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHlR
dD4gV2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGUoUVdLUGFnZSogcGFnZSkKIAogdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5UXQ6OnNob3dDb250ZXh0TWVudShjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpCiB7Ci0g
ICAgaWYgKFFNZW51KiBtZW51ID0gY3JlYXRlQ29udGV4dE1lbnUoaXRlbXMpKSB7CisgICAgaWYg
KE93blB0cjxRTWVudT4gbWVudSA9IGNyZWF0ZUNvbnRleHRNZW51KGl0ZW1zKSkgewogICAgICAg
ICBtZW51LT5tb3ZlKHBvc2l0aW9uKTsKLSAgICAgICAgZW1pdCBtX3BhZ2UtPnNob3dDb250ZXh0
TWVudShtZW51KTsKKyAgICAgICAgZW1pdCBtX3BhZ2UtPnNob3dDb250ZXh0TWVudShRU2hhcmVk
UG9pbnRlcjxRTWVudT4obWVudS5sZWFrUHRyKCkpKTsKICAgICB9CiB9CiAKQEAgLTkxLDkgKzky
LDkgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmhpZGVDb250ZXh0TWVudSgpCiB7CiB9
CiAKLVFNZW51KiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZUNvbnRleHRNZW51KGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpCitQYXNzT3duUHRyPFFNZW51
PiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZUNvbnRleHRNZW51KGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpIGNvbnN0CiB7Ci0gICAgUU1lbnUqIG1lbnUg
PSBuZXcgUU1lbnU7CisgICAgT3duUHRyPFFNZW51PiBtZW51ID0gYWRvcHRQdHIobmV3IFFNZW51
KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7CiAgICAgICAg
IGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0gPSBpdGVtcy5hdChpKTsKICAgICAg
ICAgc3dpdGNoIChpdGVtLnR5cGUoKSkgewpAQCAtMTE0LDkgKzExNSwxMSBAQCBRTWVudSogV2Vi
Q29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGVDb250ZXh0TWVudShjb25zdCBWZWN0b3I8V2ViQ29u
dGV4dE1lbnVJdGVtRAogICAgICAgICAgICAgbWVudS0+YWRkU2VwYXJhdG9yKCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpTdWJtZW51VHlwZToKLSAgICAgICAg
ICAgIGlmIChRTWVudSAqc3ViTWVudSA9IGNyZWF0ZUNvbnRleHRNZW51KGl0ZW0uc3VibWVudSgp
KSkgeworICAgICAgICAgICAgaWYgKE93blB0cjxRTWVudT4gc3ViTWVudSA9IGNyZWF0ZUNvbnRl
eHRNZW51KGl0ZW0uc3VibWVudSgpKSkgeworICAgICAgICAgICAgICAgIHN1Yk1lbnUtPnNldFBh
cmVudChtZW51LmdldCgpKTsKKyAgICAgICAgICAgICAgICBRTWVudSogY29uc3Qgc3ViTWVudVB0
ciA9IHN1Yk1lbnUubGVha1B0cigpOwogICAgICAgICAgICAgICAgIHN1Yk1lbnUtPnNldFRpdGxl
KGl0ZW0udGl0bGUoKSk7Ci0gICAgICAgICAgICAgICAgbWVudS0+YWRkQWN0aW9uKHN1Yk1lbnUt
Pm1lbnVBY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgbWVudS0+YWRkTWVudShzdWJNZW51UHRy
KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjQsMjIgKzEyNywx
OSBAQCBRTWVudSogV2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGVDb250ZXh0TWVudShjb25z
dCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRAogICAgIH0KIAogICAgIC8vIERvIG5vdCBzaG93
IHN1Yi1tZW51cyB3aXRoIGp1c3QgZGlzYWJsZWQgYWN0aW9ucy4KLSAgICBpZiAobWVudS0+aXNF
bXB0eSgpKSB7Ci0gICAgICAgIGRlbGV0ZSBtZW51OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9
CisgICAgaWYgKG1lbnUtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8UU1l
bnU+KCk7CisKICAgICBib29sIGlzQW55QWN0aW9uRW5hYmxlZCA9IGZhbHNlOwogICAgIFFMaXN0
PFFBY3Rpb24gKj4gYWN0aW9ucyA9IG1lbnUtPmFjdGlvbnMoKTsKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IGFjdGlvbnMuY291bnQoKTsgKytpKSB7CiAgICAgICAgIGlmIChhY3Rpb25zLmF0KGkp
LT5pc1Zpc2libGUoKSkKICAgICAgICAgICAgIGlzQW55QWN0aW9uRW5hYmxlZCB8PSBhY3Rpb25z
LmF0KGkpLT5pc0VuYWJsZWQoKTsKICAgICB9Ci0gICAgaWYgKCFpc0FueUFjdGlvbkVuYWJsZWQp
IHsKLSAgICAgICAgZGVsZXRlIG1lbnU7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBp
ZiAoIWlzQW55QWN0aW9uRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8UU1lbnU+
KCk7CiAKLSAgICByZXR1cm4gbWVudTsKKyAgICByZXR1cm4gbWVudS5yZWxlYXNlKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oCmluZGV4IDQzNTIwNGZkNjNkNTg2Yzg5YzcwMDk3
NmVlNTVkYTYyY2M3OTVmYjUuLjYwZDgzYTU3YzA1MzkzODMzZTM5YWViZDBlMjg5YzM1YTJhNjg1
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVu
dVByb3h5UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1l
bnVQcm94eVF0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgV2ViQ29udGV4dE1lbnVQcm94
eVF0X2gKIAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxQYXNz
T3duUHRyLmg+CiAKIGNsYXNzIFFNZW51OwogY2xhc3MgUVdLUGFnZTsKQEAgLTQ1LDcgKzQ2LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+Jik7CiAg
ICAgdmlydHVhbCB2b2lkIGhpZGVDb250ZXh0TWVudSgpOwogCi0gICAgUU1lbnUqIGNyZWF0ZUNv
bnRleHRNZW51KGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpOwor
ICAgIFBhc3NPd25QdHI8UU1lbnU+IGNyZWF0ZUNvbnRleHRNZW51KGNvbnN0IFZlY3RvcjxXZWJD
b250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpIGNvbnN0OwogCiAgICAgUVdLUGFnZSogY29uc3Qg
bV9wYWdlOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>