<?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>75746</bug_id>
          
          <creation_ts>2012-01-06 14:51:27 -0800</creation_ts>
          <short_desc>[Qt] [WK2] Minibrowser leaks memory ~6-7Mb per reload</short_desc>
          <delta_ts>2012-01-06 18:50:45 -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>WebKit Qt</component>
          <version>528+ (Nightly 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>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531424</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-01-06 14:51:27 -0800</bug_when>
    <thetext>Valgrind memcheck run of Minibrowser with several reloads of http://google.com:

==17353== 81,106,512 (25,040 direct, 81,081,472 indirect) bytes in 313 blocks are definitely lost in loss record 628 of 628
==17353==    at 0x402641D: operator new(unsigned int) (vg_replace_malloc.c:255)
==17353==    by 0x895B20C: QImageData::create(QSize const&amp;, QImage::Format, int) (qimage.cpp:187)
==17353==    by 0x895B8AC: QImage::QImage(int, int, QImage::Format) (qimage.cpp:766)
==17353==    by 0x895C2FC: QImage::copy(QRect const&amp;) const (qimage.cpp:1126)
==17353==    by 0x45DDD0F: WebKit::LayerTreeHostProxy::updateTileForLayer(int, int, WebKit::UpdateInfo const&amp;) (LayerTreeHostProxyQt.cpp:524)
==17353==    by 0x4665383: void CoreIPC::callMemberFunction&lt;WebKit::LayerTreeHostProxy, void (WebKit::LayerTreeHostProxy::*)(int, int, WebKit::UpdateInfo const&amp;), unsigned int, int, WebKit::UpdateInfo&gt;(CoreIPC::Arguments3&lt;unsigned int, int, WebKit::UpdateInfo&gt; const&amp;, WebKit::LayerTreeHostProxy*, void (WebKit::LayerTreeHostProxy::*)(int, int, WebKit::UpdateInfo const&amp;)) (HandleMessage.h:31)
==17353==    by 0x4665028: void CoreIPC::handleMessage&lt;Messages::LayerTreeHostProxy::UpdateTileForLayer, WebKit::LayerTreeHostProxy, void (WebKit::LayerTreeHostProxy::*)(int, int, WebKit::UpdateInfo const&amp;)&gt;(CoreIPC::ArgumentDecoder*, WebKit::LayerTreeHostProxy*, void (WebKit::LayerTreeHostProxy::*)(int, int, WebKit::UpdateInfo const&amp;)) (HandleMessage.h:277)
==17353==    by 0x4664C2B: WebKit::LayerTreeHostProxy::didReceiveLayerTreeHostProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) (LayerTreeHostProxyMessageReceiver.cpp:56)
==17353==    by 0x45C6BA0: WebKit::DrawingAreaProxyImpl::didReceiveLayerTreeHostProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) (DrawingAreaProxyImpl.cpp:356)
==17353==    by 0x44B2C2E: WebKit::WebPageProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) (WebPageProxy.cpp:1629)
==17353==    by 0x44EDE44: WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) (WebProcessProxy.cpp:307)
==17353==    by 0x459BFA5: CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message&lt;CoreIPC::ArgumentDecoder&gt;&amp;) (Connection.cpp:689)

1. Problem is regression from r103760, which removes setting of m_layerTreeTileClient in WebGraphicsLayer and this way m_layerTreeTileClient-&gt;didDeleteLayer(id()) is never called in ~WebGraphicsLayer() .
2. UpdateTileMessageData structure is never destructed after processing in LayerTreeHostProxy::syncRemoteContent(). If I add ~UpdateTileMessageData() it never gets called from LayerTreeHostProxy::syncRemoteContent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531441</commentid>
    <comment_count>1</comment_count>
      <attachid>121505</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-01-06 15:16:24 -0800</bug_when>
    <thetext>Created attachment 121505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531465</commentid>
    <comment_count>2</comment_count>
      <attachid>121505</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-06 15:41:33 -0800</bug_when>
    <thetext>Comment on attachment 121505
Patch

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Revert r103760 because it causes leak of GraphicsLayerTextureMapper 
&gt; +        objects on UI side and reset WebGraphicsLayer::m_layerTreeTileClient 
&gt; +        of all dependent layers from ~LayerTreeHostQt().

This is more than a revert :)
Changelog should explain that it fixes the original bug from 103760 in a way that doesn&apos;t create leaks.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:621
&gt; +    if (m_layerTreeTileClient != client) {
&gt; +        for (size_t i = 0; i &lt; children().size(); ++i) {

Early return</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531470</commentid>
    <comment_count>3</comment_count>
      <attachid>121513</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-01-06 15:48:13 -0800</bug_when>
    <thetext>Created attachment 121513
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531572</commentid>
    <comment_count>4</comment_count>
      <attachid>121513</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 18:50:40 -0800</bug_when>
    <thetext>Comment on attachment 121513
Updated patch.

Clearing flags on attachment: 121513

Committed r104370: &lt;http://trac.webkit.org/changeset/104370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531573</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 18:50:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121505</attachid>
            <date>2012-01-06 15:16:24 -0800</date>
            <delta_ts>2012-01-06 15:48:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>memleak_fix_01.diff</filename>
            <type>text/plain</type>
            <size>4650</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhODc2MzlmLi4zMWUyNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDEtMDYgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBNaW5pYnJvd3NlciBsZWFrcyBt
ZW1vcnkgfjYtN01iIHBlciByZWxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc1NzQ2CisKKyAgICAgICAgUmV2ZXJ0IHIxMDM3NjAgYmVjYXVzZSBp
dCBjYXVzZXMgbGVhayBvZiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciAKKyAgICAgICAgb2Jq
ZWN0cyBvbiBVSSBzaWRlIGFuZCByZXNldCBXZWJHcmFwaGljc0xheWVyOjptX2xheWVyVHJlZVRp
bGVDbGllbnQgCisgICAgICAgIG9mIGFsbCBkZXBlbmRlbnQgbGF5ZXJzIGZyb20gfkxheWVyVHJl
ZUhvc3RRdCgpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXRM
YXllclRyZWVUaWxlQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5
ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFF0Ojp+TGF5
ZXJUcmVlSG9zdFF0KToKKwogMjAxMi0wMS0wNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBOZWVkIHRvIGFsbG93IFNDTmV0d29ya1JlYWNoYWJpbGl0eSBz
ZXJ2aWNlIGluIHNhbmRib3ggcHJvZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKaW5kZXgg
YzBmNjEyOC4uNTExZDE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00MDEsNiAr
NDAxLDkgQEAgV2ViR3JhcGhpY3NMYXllciogdG9XZWJHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQogCiB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiB7CisgICAgaWYgKCFtX2xheWVyVHJlZVRpbGVDbGllbnQpCisg
ICAgICAgIG1fbGF5ZXJUcmVlVGlsZUNsaWVudCA9IGxheWVyVHJlZVRpbGVDbGllbnQoKTsKKwog
ICAgIHVwZGF0ZUNvbnRlbnRCdWZmZXJzKCk7CiAKICAgICBpZiAoIW1fbW9kaWZpZWQpCkBAIC00
MzEsMTIgKzQzNCwxMSBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJl
bigpLnNpemUoKTsgKytpKQogICAgICAgICBtX2xheWVySW5mby5jaGlsZHJlbi5hcHBlbmQodG9X
ZWJMYXllcklEKGNoaWxkcmVuKClbaV0pKTsKIAotICAgIFdlYkxheWVyVHJlZVRpbGVDbGllbnQq
IHRpbGVDbGllbnQgPSBsYXllclRyZWVUaWxlQ2xpZW50KCk7Ci0gICAgQVNTRVJUKHRpbGVDbGll
bnQpOworICAgIEFTU0VSVChtX2xheWVyVHJlZVRpbGVDbGllbnQpOwogICAgIGlmIChtX2xheWVy
SW5mby5pbWFnZUlzVXBkYXRlZCAmJiBtX2ltYWdlICYmICFtX2xheWVySW5mby5pbWFnZUJhY2tp
bmdTdG9yZUlEKQotICAgICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gdGls
ZUNsaWVudC0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKKyAgICAgICAg
bV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCA9IG1fbGF5ZXJUcmVlVGlsZUNsaWVudC0+
YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKIAotICAgIHRpbGVDbGllbnQt
PmRpZFN5bmNDb21wb3NpdGluZ1N0YXRlRm9yTGF5ZXIobV9sYXllckluZm8pOworICAgIG1fbGF5
ZXJUcmVlVGlsZUNsaWVudC0+ZGlkU3luY0NvbXBvc2l0aW5nU3RhdGVGb3JMYXllcihtX2xheWVy
SW5mbyk7CiAgICAgbV9tb2RpZmllZCA9IGZhbHNlOwogICAgIG1fbGF5ZXJJbmZvLmltYWdlSXNV
cGRhdGVkID0gZmFsc2U7CiAgICAgaWYgKG1faGFzUGVuZGluZ0FuaW1hdGlvbnMpCkBAIC02MTIs
NiArNjE0LDIxIEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6cmVjcmVhdGVCYWNraW5nU3RvcmVJ
Zk5lZWRlZCgpCiAgICAgaWYgKG1faW1hZ2UpCiAgICAgICAgIHNldENvbnRlbnRzTmVlZHNEaXNw
bGF5KCk7CiB9CisKK3ZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0TGF5ZXJUcmVlVGlsZUNsaWVu
dChXZWJLaXQ6OldlYkxheWVyVHJlZVRpbGVDbGllbnQqIGNsaWVudCkKK3sKKyAgICBpZiAobV9s
YXllclRyZWVUaWxlQ2xpZW50ICE9IGNsaWVudCkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFdlYkdyYXBoaWNz
TGF5ZXIqIGxheWVyID0gdG9XZWJHcmFwaGljc0xheWVyKHRoaXMtPmNoaWxkcmVuKClbaV0pOwor
ICAgICAgICAgICAgbGF5ZXItPnNldExheWVyVHJlZVRpbGVDbGllbnQoY2xpZW50KTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIEhhdmUgdG8gZm9yY2UgZGV0YWNoIGZyb20gcmVtb3RlIGxheWVy
IGhlcmUgaWYgbGF5ZXIgdGlsZSBjbGllbnQgY2hhbmdlcy4KKyAgICAgICAgaWYgKG1fbGF5ZXJU
cmVlVGlsZUNsaWVudCkKKyAgICAgICAgICAgIG1fbGF5ZXJUcmVlVGlsZUNsaWVudC0+ZGlkRGVs
ZXRlTGF5ZXIoaWQoKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlVGlsZUNsaWVudCA9IGNsaWVudDsK
KyAgICB9Cit9CiAjZW5kaWYKIAogc3RhdGljIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3Jl
YXRlV2ViR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3Jh
cGhpY3NMYXllci5oCmluZGV4IDUyOTU1ZGUuLjM2MWZjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXll
ci5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVU
aWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpOwogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVUaWxlKGludCB0aWxlSUQpOwogCi0gICAgdm9pZCBzZXRMYXllclRyZWVUaWxl
Q2xpZW50KFdlYktpdDo6V2ViTGF5ZXJUcmVlVGlsZUNsaWVudCogY2xpZW50KSB7IG1fbGF5ZXJU
cmVlVGlsZUNsaWVudCA9IGNsaWVudDsgfQorICAgIHZvaWQgc2V0TGF5ZXJUcmVlVGlsZUNsaWVu
dChXZWJLaXQ6OldlYkxheWVyVHJlZVRpbGVDbGllbnQqKTsKICAgICBXZWJLaXQ6OldlYkxheWVy
VHJlZVRpbGVDbGllbnQqIGxheWVyVHJlZVRpbGVDbGllbnQoKSBjb25zdDsKIAogICAgIGJvb2wg
aXNSZWFkeUZvclRpbGVCdWZmZXJTd2FwKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCmluZGV4IDI2
NmEzYTkuLjM0MWZiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCkBAIC01Miw2ICs1Miw4IEBAIFBhc3NS
ZWZQdHI8TGF5ZXJUcmVlSG9zdFF0PiBMYXllclRyZWVIb3N0UXQ6OmNyZWF0ZShXZWJQYWdlKiB3
ZWJQYWdlKQogCiBMYXllclRyZWVIb3N0UXQ6On5MYXllclRyZWVIb3N0UXQoKQogeworICAgIGlm
IChtX3Jvb3RMYXllcikKKyAgICAgICAgdG9XZWJHcmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdl
dCgpKS0+c2V0TGF5ZXJUcmVlVGlsZUNsaWVudCgwKTsKIH0KIAogTGF5ZXJUcmVlSG9zdFF0OjpM
YXllclRyZWVIb3N0UXQoV2ViUGFnZSogd2ViUGFnZSkK
</data>
<flag name="review"
          id="122017"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="122018"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121513</attachid>
            <date>2012-01-06 15:48:13 -0800</date>
            <delta_ts>2012-01-06 18:50:40 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>memleak_fix_02.diff</filename>
            <type>text/plain</type>
            <size>4628</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhODc2MzlmLi5mOGU0NGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDEtMDYgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBNaW5pYnJvd3NlciBsZWFrcyBt
ZW1vcnkgfjYtN01iIHBlciByZWxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc1NzQ2CisKKyAgICAgICAgUmVzZXQgV2ViR3JhcGhpY3NMYXllcjo6
bV9sYXllclRyZWVUaWxlQ2xpZW50IG9mIGFsbCBkZXBlbmRlbnQgCisgICAgICAgIGxheWVycyBm
cm9tIH5MYXllclRyZWVIb3N0UXQoKS4gVGhpcyByZXBsYWNlcyByMTAzNzYwIHdoaWNoCisgICAg
ICAgIGNhdXNlcyBsZWFrcyBvZiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciBvYmplY3RzIG9u
IFVJIHNpZGUuIAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXRM
YXllclRyZWVUaWxlQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5
ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFF0Ojp+TGF5
ZXJUcmVlSG9zdFF0KToKKwogMjAxMi0wMS0wNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBOZWVkIHRvIGFsbG93IFNDTmV0d29ya1JlYWNoYWJpbGl0eSBz
ZXJ2aWNlIGluIHNhbmRib3ggcHJvZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKaW5kZXgg
YzBmNjEyOC4uOTA3ZDIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00MDEsNiAr
NDAxLDkgQEAgV2ViR3JhcGhpY3NMYXllciogdG9XZWJHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQogCiB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiB7CisgICAgaWYgKCFtX2xheWVyVHJlZVRpbGVDbGllbnQpCisg
ICAgICAgIG1fbGF5ZXJUcmVlVGlsZUNsaWVudCA9IGxheWVyVHJlZVRpbGVDbGllbnQoKTsKKwog
ICAgIHVwZGF0ZUNvbnRlbnRCdWZmZXJzKCk7CiAKICAgICBpZiAoIW1fbW9kaWZpZWQpCkBAIC00
MzEsMTIgKzQzNCwxMSBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJl
bigpLnNpemUoKTsgKytpKQogICAgICAgICBtX2xheWVySW5mby5jaGlsZHJlbi5hcHBlbmQodG9X
ZWJMYXllcklEKGNoaWxkcmVuKClbaV0pKTsKIAotICAgIFdlYkxheWVyVHJlZVRpbGVDbGllbnQq
IHRpbGVDbGllbnQgPSBsYXllclRyZWVUaWxlQ2xpZW50KCk7Ci0gICAgQVNTRVJUKHRpbGVDbGll
bnQpOworICAgIEFTU0VSVChtX2xheWVyVHJlZVRpbGVDbGllbnQpOwogICAgIGlmIChtX2xheWVy
SW5mby5pbWFnZUlzVXBkYXRlZCAmJiBtX2ltYWdlICYmICFtX2xheWVySW5mby5pbWFnZUJhY2tp
bmdTdG9yZUlEKQotICAgICAgICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gdGls
ZUNsaWVudC0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKKyAgICAgICAg
bV9sYXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCA9IG1fbGF5ZXJUcmVlVGlsZUNsaWVudC0+
YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKIAotICAgIHRpbGVDbGllbnQt
PmRpZFN5bmNDb21wb3NpdGluZ1N0YXRlRm9yTGF5ZXIobV9sYXllckluZm8pOworICAgIG1fbGF5
ZXJUcmVlVGlsZUNsaWVudC0+ZGlkU3luY0NvbXBvc2l0aW5nU3RhdGVGb3JMYXllcihtX2xheWVy
SW5mbyk7CiAgICAgbV9tb2RpZmllZCA9IGZhbHNlOwogICAgIG1fbGF5ZXJJbmZvLmltYWdlSXNV
cGRhdGVkID0gZmFsc2U7CiAgICAgaWYgKG1faGFzUGVuZGluZ0FuaW1hdGlvbnMpCkBAIC02MTIs
NiArNjE0LDIyIEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6cmVjcmVhdGVCYWNraW5nU3RvcmVJ
Zk5lZWRlZCgpCiAgICAgaWYgKG1faW1hZ2UpCiAgICAgICAgIHNldENvbnRlbnRzTmVlZHNEaXNw
bGF5KCk7CiB9CisKK3ZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0TGF5ZXJUcmVlVGlsZUNsaWVu
dChXZWJLaXQ6OldlYkxheWVyVHJlZVRpbGVDbGllbnQqIGNsaWVudCkKK3sKKyAgICBpZiAobV9s
YXllclRyZWVUaWxlQ2xpZW50ID09IGNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKSB7CisgICAgICAgIFdl
YkdyYXBoaWNzTGF5ZXIqIGxheWVyID0gdG9XZWJHcmFwaGljc0xheWVyKHRoaXMtPmNoaWxkcmVu
KClbaV0pOworICAgICAgICBsYXllci0+c2V0TGF5ZXJUcmVlVGlsZUNsaWVudChjbGllbnQpOwor
ICAgIH0KKworICAgIC8vIEhhdmUgdG8gZm9yY2UgZGV0YWNoIGZyb20gcmVtb3RlIGxheWVyIGhl
cmUgaWYgbGF5ZXIgdGlsZSBjbGllbnQgY2hhbmdlcy4KKyAgICBpZiAobV9sYXllclRyZWVUaWxl
Q2xpZW50KQorICAgICAgICBtX2xheWVyVHJlZVRpbGVDbGllbnQtPmRpZERlbGV0ZUxheWVyKGlk
KCkpOworICAgIG1fbGF5ZXJUcmVlVGlsZUNsaWVudCA9IGNsaWVudDsKK30KICNlbmRpZgogCiBz
dGF0aWMgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVXZWJHcmFwaGljc0xheWVyKEdy
YXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKaW5kZXggNTI5
NTVkZS4uMzYxZmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKQEAgLTEyNCw3ICsxMjQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3Qg
V2ViS2l0OjpVcGRhdGVJbmZvJik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoaW50IHRp
bGVJRCk7CiAKLSAgICB2b2lkIHNldExheWVyVHJlZVRpbGVDbGllbnQoV2ViS2l0OjpXZWJMYXll
clRyZWVUaWxlQ2xpZW50KiBjbGllbnQpIHsgbV9sYXllclRyZWVUaWxlQ2xpZW50ID0gY2xpZW50
OyB9CisgICAgdm9pZCBzZXRMYXllclRyZWVUaWxlQ2xpZW50KFdlYktpdDo6V2ViTGF5ZXJUcmVl
VGlsZUNsaWVudCopOwogICAgIFdlYktpdDo6V2ViTGF5ZXJUcmVlVGlsZUNsaWVudCogbGF5ZXJU
cmVlVGlsZUNsaWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBpc1JlYWR5Rm9yVGlsZUJ1ZmZlclN3
YXAoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKaW5kZXggMjY2YTNhOS4uMzQxZmI2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJl
ZUhvc3RRdC5jcHAKQEAgLTUyLDYgKzUyLDggQEAgUGFzc1JlZlB0cjxMYXllclRyZWVIb3N0UXQ+
IExheWVyVHJlZUhvc3RRdDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCiAKIExheWVyVHJlZUhv
c3RRdDo6fkxheWVyVHJlZUhvc3RRdCgpCiB7CisgICAgaWYgKG1fcm9vdExheWVyKQorICAgICAg
ICB0b1dlYkdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5zZXRMYXllclRyZWVUaWxl
Q2xpZW50KDApOwogfQogCiBMYXllclRyZWVIb3N0UXQ6OkxheWVyVHJlZUhvc3RRdChXZWJQYWdl
KiB3ZWJQYWdlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>