<?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>72558</bug_id>
          
          <creation_ts>2011-11-16 15:57:36 -0800</creation_ts>
          <short_desc>[Qt] load(), title(), url(), API functions are leaking memory</short_desc>
          <delta_ts>2011-11-24 05:45:57 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Oleg Romashin (:romaxa)">romaxa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>sam</cc>
    
    <cc>tanya.meshkova</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504346</commentid>
    <comment_count>0</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-11-16 15:57:36 -0800</bug_when>
    <thetext>QtWebPageProxy::load, QtWebPageProxy::url, QtWebPageProxy::title, and some other API functions leaking strings.

==4060== 98 (36 direct, 62 indirect) bytes in 1 blocks are definitely lost in loss record 2,932 of 3,759
==4060==    at 0x4025018: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==4060==    by 0x5702890: WTF::fastMalloc(unsigned int) (FastMalloc.cpp:268)
==4060==    by 0x472C622: WTF::RefCounted&lt;WebKit::APIObject&gt;::operator new(unsigned int) (RefCounted.h:178)
==4060==    by 0x472E803: WebKit::WebURL::create(WTF::String const&amp;) (WebURL.h:46)
==4060==    by 0x472E916: WebKit::toCopiedURLAPI(WTF::String const&amp;) (WKSharedAPICast.h:162)
==4060==    by 0x4784CB2: WKURLCreateWithQUrl(QUrl const&amp;) (WKURLQt.cpp:34)
==4060==    by 0x484BB7D: QtWebPageProxy::load(QUrl const&amp;) (QtWebPageProxy.cpp:718)
==4060==    by 0x4788D3C: QQuickWebView::load(QUrl const&amp;) (qquickwebview.cpp:390)

WKRetainPtr&lt;WKURLRef&gt; wkurl(WKURLCreateWithQUrl(url));
WKPageLoadURL(pageRef(), wkurl.get());


WebURL created by WKURLCreateWithQUrl, getting refcount + 1 in &apos;
WKURLRef toCopiedURLAPI
RefPtr&lt;WebURL&gt; webURL = WebURL::create(string);
return toAPI(webURL.release().leakRef());

but it never released after WKRetainPtr&lt;WKURLRef&gt; wkurl destroyed...
Not sure what is right way to fix it... I guess on WKRetainPtr&lt;WKURLRef&gt; wkurl destroy it should destroy adopted toImpl WebURL pointer..

Quick workaround to fix this problem is to add:
PassRefPtr&lt;WebURL/WebString&gt; autoDeletePtr = adoptRef(toImpl(wkrefPtr));
which will destroy WebURL/WebString instance on exit from the function...

Otherwise I need to go deeply into smart-pointers relation ship and figure out how to make it works automatically...


Any ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504376</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-16 16:21:12 -0800</bug_when>
    <thetext>I believe the issue is this line:

WKRetainPtr&lt;WKURLRef&gt; wkurl(WKURLCreateWithQUrl(url));

that should read:

WKRetainPtr&lt;WKURLRef&gt; wkurl = adoptWK(WKURLCreateWithQUrl(url));

This follow the Create Rule (http://developer.apple.com/library/IOs/#documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504917</commentid>
    <comment_count>2</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-11-17 09:29:00 -0800</bug_when>
    <thetext>&gt; WKRetainPtr&lt;WKURLRef&gt; wkurl = adoptWK(WKURLCreateWithQUrl(url));
&gt; 
Ok thanks Sam, I&apos;ll create patch soon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505287</commentid>
    <comment_count>3</comment_count>
      <attachid>115700</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-11-17 15:31:28 -0800</bug_when>
    <thetext>Created attachment 115700
adoptWK ref pointers in order to release implementation when WK pointer released</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505359</commentid>
    <comment_count>4</comment_count>
      <attachid>115700</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-11-17 16:59:07 -0800</bug_when>
    <thetext>Comment on attachment 115700
adoptWK ref pointers in order to release implementation when WK pointer released

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

Patch is good, please improve the changelog.

&gt; Source/WebKit2/ChangeLog:5
&gt; +

Please explain what the patch actually does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505975</commentid>
    <comment_count>5</comment_count>
      <attachid>115848</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-11-18 12:34:40 -0800</bug_when>
    <thetext>Created attachment 115848
use adoptWK in order to adopt implementation refPtr and release it when WK pointer released</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508706</commentid>
    <comment_count>6</comment_count>
      <attachid>115848</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-24 04:15:39 -0800</bug_when>
    <thetext>Comment on attachment 115848
use adoptWK in order to adopt implementation refPtr and release it when WK pointer released

r=me, but before landing the ChangeLog text should be improved (&quot;don&apos;t&quot; -&gt; &quot;doesn&apos;t&quot;, &quot;adopt&quot; -&gt; &quot;adopts&quot;, etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508735</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-24 05:45:57 -0800</bug_when>
    <thetext>Landed with updated changelog and rebased against ClientImpl changes

Committed r101136: &lt;http://trac.webkit.org/changeset/101136&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115700</attachid>
            <date>2011-11-17 15:31:28 -0800</date>
            <delta_ts>2011-11-18 12:34:40 -0800</delta_ts>
            <desc>adoptWK ref pointers in order to release implementation when WK pointer released</desc>
            <filename>super_patch.diff</filename>
            <type>text/plain</type>
            <size>3657</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDY4NykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBPbGVnIFJv
bWFzaGluICA8cm9tYXhhQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3RvcCBsZWFr
aW5nIG1lbW9yeSBpbiBzdHJpbmcgUVdLMiBBUEkncworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKHF0X3drX21vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpxdF93a19kaWRG
YWlsRG93bmxvYWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6bG9hZCk6CisgICAgICAgIChRdFdlYlBhZ2VQcm94
eTo6dXJsKToKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5Ojp0aXRsZSk6CisKIDIwMTEtMTEtMTcg
IElnb3IgT2xpdmVpcmEgIDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAg
W1dLMl0gRml4IFRyYW5zZm9ybU9wZXJhdGlvbiBzZXJpYWxpemF0aW9uCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiAxMDA2ODUpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwOSw4ICsyMDksOCBAQCBzdGF0aWMgdm9pZCBxdF93a19ydW5PcGVuUGFuZWwoV0tQ
YWdlUmVmCiAKIHN0YXRpYyB2b2lkIHF0X3drX21vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdLUGFn
ZVJlZiBwYWdlLCBXS0hpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgV0tFdmVudE1vZGlm
aWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKLSAgICBjb25zdCBRVXJsIGFic29sdXRlTGlua1VybCA9IFdLVVJMQ29weVFVcmwoV0tI
aXRUZXN0UmVzdWx0Q29weUFic29sdXRlTGlua1VSTChoaXRUZXN0UmVzdWx0KSk7Ci0gICAgY29u
c3QgUVN0cmluZyBsaW5rVGl0bGUgPSBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLSGl0VGVzdFJlc3Vs
dENvcHlMaW5rVGl0bGUoaGl0VGVzdFJlc3VsdCkpOworICAgIGNvbnN0IFFVcmwgYWJzb2x1dGVM
aW5rVXJsID0gV0tVUkxDb3B5UVVybChhZG9wdFdLKFdLSGl0VGVzdFJlc3VsdENvcHlBYnNvbHV0
ZUxpbmtVUkwoaGl0VGVzdFJlc3VsdCkpLmdldCgpKTsKKyAgICBjb25zdCBRU3RyaW5nIGxpbmtU
aXRsZSA9IFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS0hpdFRlc3RSZXN1bHRDb3B5TGlu
a1RpdGxlKGhpdFRlc3RSZXN1bHQpKS5nZXQoKSk7CiAgICAgdG9RdFZpZXdJbnRlcmZhY2UoY2xp
ZW50SW5mbyktPmRpZE1vdXNlTW92ZU92ZXJFbGVtZW50KGFic29sdXRlTGlua1VybCwgbGlua1Rp
dGxlKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRN
YW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRE
b3dubG9hZE1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMDA2ODUpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3
ICs1NSw3IEBAIHN0YXRpYyB2b2lkIHF0X3drX2RpZEZpbmlzaERvd25sb2FkKFdLQ28KIAogc3Rh
dGljIHZvaWQgcXRfd2tfZGlkRmFpbERvd25sb2FkKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0Rv
d25sb2FkUmVmIGRvd25sb2FkLCBXS0Vycm9yUmVmIGVycm9yLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQogewotICAgIFFVcmwgZmFpbGluZ1VybCA9IFdLVVJMQ29weVFVcmwoV0tFcnJvckNvcHlG
YWlsaW5nVVJMKGVycm9yKSk7CisgICAgUVVybCBmYWlsaW5nVXJsID0gV0tVUkxDb3B5UVVybChh
ZG9wdFdLKFdLRXJyb3JDb3B5RmFpbGluZ1VSTChlcnJvcikpLmdldCgpKTsKIAogICAgIHRvUXRE
b3dubG9hZE1hbmFnZXIoY2xpZW50SW5mbyktPmRvd25sb2FkRmFpbGVkKHRvSW1wbChkb3dubG9h
ZCksIFF0V2ViRXJyb3IoZXJyb3IpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMTAwNjg1KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzE5LDcgKzcxOSw3IEBAIHZvaWQgUXRXZWJQYWdlUHJveHk6OnBvc3RNZXNzYWdlVG9OYXZp
Z2EKIAogdm9pZCBRdFdlYlBhZ2VQcm94eTo6bG9hZChjb25zdCBRVXJsJiB1cmwpCiB7Ci0gICAg
V0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrdXJsKFdLVVJMQ3JlYXRlV2l0aFFVcmwodXJsKSk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrdXJsID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhR
VXJsKHVybCkpOwogICAgIFdLUGFnZUxvYWRVUkwocGFnZVJlZigpLCB3a3VybC5nZXQoKSk7CiB9
CiAKQEAgLTcyOCwxMiArNzI4LDEyIEBAIFFVcmwgUXRXZWJQYWdlUHJveHk6OnVybCgpIGNvbnN0
CiAgICAgV0tSZXRhaW5QdHI8V0tGcmFtZVJlZj4gZnJhbWUgPSBXS1BhZ2VHZXRNYWluRnJhbWUo
cGFnZVJlZigpKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gUVVybCgpOwotICAg
IHJldHVybiBXS1VSTENvcHlRVXJsKFdLRnJhbWVDb3B5VVJMKGZyYW1lLmdldCgpKSk7CisgICAg
cmV0dXJuIFdLVVJMQ29weVFVcmwoYWRvcHRXSyhXS0ZyYW1lQ29weVVSTChmcmFtZS5nZXQoKSkp
LmdldCgpKTsKIH0KIAogUVN0cmluZyBRdFdlYlBhZ2VQcm94eTo6dGl0bGUoKSBjb25zdAogewot
ICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLUGFnZUNvcHlUaXRsZSh0b0FQSShtX3dl
YlBhZ2VQcm94eS5nZXQoKSkpKTsKKyAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhhZG9w
dFdLKFdLUGFnZUNvcHlUaXRsZSh0b0FQSShtX3dlYlBhZ2VQcm94eS5nZXQoKSkpKS5nZXQoKSk7
CiB9CiAKIHZvaWQgUXRXZWJQYWdlUHJveHk6OnNldERyYXdpbmdBcmVhU2l6ZShjb25zdCBRU2l6
ZSYgc2l6ZSkK
</data>
<flag name="review"
          id="114670"
          type_id="1"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115848</attachid>
            <date>2011-11-18 12:34:40 -0800</date>
            <delta_ts>2011-11-24 04:15:39 -0800</delta_ts>
            <desc>use adoptWK in order to adopt implementation refPtr and release it when WK pointer released</desc>
            <filename>super_patch.diff</filename>
            <type>text/plain</type>
            <size>3913</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDY4NykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDExLTExLTE3ICBPbGVnIFJv
bWFzaGluICA8cm9tYXhhQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3RvcCBsZWFr
aW5nIG1lbW9yeSBpbiBzdHJpbmcgUVdLMiBBUEkncworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NTgKKworICAgICAgICBXS1JlZiBBUEkgcG9pbnRl
ciBkb24ndCBhZG9wdCBJbXBsZW1lbnRhdGlvbiBwb2ludGVyIGJ5IGRlZmF1bHQgYW5kIEltcGwg
cG9pbnRlcgorICAgICAgICBzdGF5IGFsaXZlIGFmdGVyIGRlc3Ryb3lpbmcgQVBJIHBvaW50ZXIu
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRvcHQgaW1wbGVtZW50YXRpb24gUmVmUHRyIHRvIFdLIEFQ
SSBwb2ludGVyLCBhbmQgcmVsZWFzZSBJbXBsZW1lbnRhdGlvbiB3aGVuIFdLUmVmIHJlbGVhc2Vk
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChxdF93a19tb3VzZURpZE1vdmVPdmVy
RWxlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6cXRfd2tfZGlkRmFpbERvd25sb2FkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoUXRXZWJQYWdlUHJveHk6Omxv
YWQpOgorICAgICAgICAoUXRXZWJQYWdlUHJveHk6OnVybCk6CisgICAgICAgIChRdFdlYlBhZ2VQ
cm94eTo6dGl0bGUpOgorCiAyMDExLTExLTE3ICBJZ29yIE9saXZlaXJhICA8aWdvci5vbGl2ZWly
YUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtXSzJdIEZpeCBUcmFuc2Zvcm1PcGVyYXRpb24g
c2VyaWFsaXphdGlvbgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJ
bXBsLmNwcAkocmV2aXNpb24gMTAwNjg1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L0NsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksOCArMjA5LDggQEAgc3RhdGlj
IHZvaWQgcXRfd2tfcnVuT3BlblBhbmVsKFdLUGFnZVJlZgogCiBzdGF0aWMgdm9pZCBxdF93a19t
b3VzZURpZE1vdmVPdmVyRWxlbWVudChXS1BhZ2VSZWYgcGFnZSwgV0tIaXRUZXN0UmVzdWx0UmVm
IGhpdFRlc3RSZXN1bHQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgY29uc3QgUVVybCBhYnNvbHV0
ZUxpbmtVcmwgPSBXS1VSTENvcHlRVXJsKFdLSGl0VGVzdFJlc3VsdENvcHlBYnNvbHV0ZUxpbmtV
UkwoaGl0VGVzdFJlc3VsdCkpOwotICAgIGNvbnN0IFFTdHJpbmcgbGlua1RpdGxlID0gV0tTdHJp
bmdDb3B5UVN0cmluZyhXS0hpdFRlc3RSZXN1bHRDb3B5TGlua1RpdGxlKGhpdFRlc3RSZXN1bHQp
KTsKKyAgICBjb25zdCBRVXJsIGFic29sdXRlTGlua1VybCA9IFdLVVJMQ29weVFVcmwoYWRvcHRX
SyhXS0hpdFRlc3RSZXN1bHRDb3B5QWJzb2x1dGVMaW5rVVJMKGhpdFRlc3RSZXN1bHQpKS5nZXQo
KSk7CisgICAgY29uc3QgUVN0cmluZyBsaW5rVGl0bGUgPSBXS1N0cmluZ0NvcHlRU3RyaW5nKGFk
b3B0V0soV0tIaXRUZXN0UmVzdWx0Q29weUxpbmtUaXRsZShoaXRUZXN0UmVzdWx0KSkuZ2V0KCkp
OwogICAgIHRvUXRWaWV3SW50ZXJmYWNlKGNsaWVudEluZm8pLT5kaWRNb3VzZU1vdmVPdmVyRWxl
bWVudChhYnNvbHV0ZUxpbmtVcmwsIGxpbmtUaXRsZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MTAwNjg1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMgdm9pZCBxdF93a19k
aWRGaW5pc2hEb3dubG9hZChXS0NvCiAKIHN0YXRpYyB2b2lkIHF0X3drX2RpZEZhaWxEb3dubG9h
ZChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tEb3dubG9hZFJlZiBkb3dubG9hZCwgV0tFcnJvclJl
ZiBlcnJvciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKLSAgICBRVXJsIGZhaWxpbmdVcmwg
PSBXS1VSTENvcHlRVXJsKFdLRXJyb3JDb3B5RmFpbGluZ1VSTChlcnJvcikpOworICAgIFFVcmwg
ZmFpbGluZ1VybCA9IFdLVVJMQ29weVFVcmwoYWRvcHRXSyhXS0Vycm9yQ29weUZhaWxpbmdVUkwo
ZXJyb3IpKS5nZXQoKSk7CiAKICAgICB0b1F0RG93bmxvYWRNYW5hZ2VyKGNsaWVudEluZm8pLT5k
b3dubG9hZEZhaWxlZCh0b0ltcGwoZG93bmxvYWQpLCBRdFdlYkVycm9yKGVycm9yKSk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAJ
KHJldmlzaW9uIDEwMDY4NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxOSw3ICs3MTksNyBAQCB2b2lkIFF0V2Vi
UGFnZVByb3h5Ojpwb3N0TWVzc2FnZVRvTmF2aWdhCiAKIHZvaWQgUXRXZWJQYWdlUHJveHk6Omxv
YWQoY29uc3QgUVVybCYgdXJsKQogewotICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a3VybChX
S1VSTENyZWF0ZVdpdGhRVXJsKHVybCkpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a3Vy
bCA9IGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoUVVybCh1cmwpKTsKICAgICBXS1BhZ2VMb2FkVVJM
KHBhZ2VSZWYoKSwgd2t1cmwuZ2V0KCkpOwogfQogCkBAIC03MjgsMTIgKzcyOCwxMiBAQCBRVXJs
IFF0V2ViUGFnZVByb3h5Ojp1cmwoKSBjb25zdAogICAgIFdLUmV0YWluUHRyPFdLRnJhbWVSZWY+
IGZyYW1lID0gV0tQYWdlR2V0TWFpbkZyYW1lKHBhZ2VSZWYoKSk7CiAgICAgaWYgKCFmcmFtZSkK
ICAgICAgICAgcmV0dXJuIFFVcmwoKTsKLSAgICByZXR1cm4gV0tVUkxDb3B5UVVybChXS0ZyYW1l
Q29weVVSTChmcmFtZS5nZXQoKSkpOworICAgIHJldHVybiBXS1VSTENvcHlRVXJsKGFkb3B0V0so
V0tGcmFtZUNvcHlVUkwoZnJhbWUuZ2V0KCkpKS5nZXQoKSk7CiB9CiAKIFFTdHJpbmcgUXRXZWJQ
YWdlUHJveHk6OnRpdGxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmlu
ZyhXS1BhZ2VDb3B5VGl0bGUodG9BUEkobV93ZWJQYWdlUHJveHkuZ2V0KCkpKSk7CisgICAgcmV0
dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoYWRvcHRXSyhXS1BhZ2VDb3B5VGl0bGUodG9BUEkobV93
ZWJQYWdlUHJveHkuZ2V0KCkpKSkuZ2V0KCkpOwogfQogCiB2b2lkIFF0V2ViUGFnZVByb3h5Ojpz
ZXREcmF3aW5nQXJlYVNpemUoY29uc3QgUVNpemUmIHNpemUpCg==
</data>
<flag name="review"
          id="114870"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="115677"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>