<?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>86300</bug_id>
          
          <creation_ts>2012-05-12 08:34:13 -0700</creation_ts>
          <short_desc>RenderView::selectionBounds and RenderView::setSelection use maps with raw pointers that should be OwnPtr</short_desc>
          <delta_ts>2012-05-13 16:38:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622353</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-12 08:34:13 -0700</bug_when>
    <thetext>RenderView::selectionBounds uses some maps with raw pointers that should be OwnPtr instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622354</commentid>
    <comment_count>1</comment_count>
      <attachid>141579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-12 08:36:08 -0700</bug_when>
    <thetext>Created attachment 141579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622393</commentid>
    <comment_count>2</comment_count>
      <attachid>141579</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-12 11:07:53 -0700</bug_when>
    <thetext>Comment on attachment 141579
Patch

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

LGTM.  Hopefully the timings on these deletions don&apos;t matter.  I didn&apos;t look closely at what RenderSelectionInfo to see if we&apos;re now extending the life of objects in ways which could interact with later parts of these functions.

&gt; Source/WebCore/ChangeLog:3
&gt; +        RenderView::selectionBounds and RenderView::setSelectoin use maps with raw pointers that should be OwnPtr

&quot;selectoin&quot;

&gt; Source/WebCore/rendering/RenderView.cpp:414
&gt; +                OwnPtr&lt;RenderSelectionInfo&gt;&amp; blockInfo = selectedObjects.add(cb, nullptr).iterator-&gt;second;

I thought someone had fixed our HashMap code to not use std:pair, and thus have -&gt;key and -&gt;value instead of first/second.

&gt; Source/WebCore/rendering/RenderView.cpp:417
&gt; +                blockInfo = adoptPtr(new RenderSelectionInfo(cb, clipToVisibleContent));

I presume that its&apos; kosher to fill the iterator here, since as far as the hashmap is concerned, it already added the value &quot;nullPtr&quot; if something didn&apos;t previously exist for that key?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622549</commentid>
    <comment_count>3</comment_count>
      <attachid>141579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-13 15:50:42 -0700</bug_when>
    <thetext>Comment on attachment 141579
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderView.cpp:414
&gt;&gt; +                OwnPtr&lt;RenderSelectionInfo&gt;&amp; blockInfo = selectedObjects.add(cb, nullptr).iterator-&gt;second;
&gt; 
&gt; I thought someone had fixed our HashMap code to not use std:pair, and thus have -&gt;key and -&gt;value instead of first/second.

I thought so too. This is an old patch, so it’s not surprising that this was written the old way. But given that, I wonder why this patch is building fine in EWS.

&gt;&gt; Source/WebCore/rendering/RenderView.cpp:417
&gt;&gt; +                blockInfo = adoptPtr(new RenderSelectionInfo(cb, clipToVisibleContent));
&gt; 
&gt; I presume that its&apos; kosher to fill the iterator here, since as far as the hashmap is concerned, it already added the value &quot;nullPtr&quot; if something didn&apos;t previously exist for that key?

Yes, a nullptr has been added. We have a reference to the value in the map that we did get by dereferencing the iterator. And it’s legal to change the value in the map by assigning to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622572</commentid>
    <comment_count>4</comment_count>
      <attachid>141579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-13 16:38:25 -0700</bug_when>
    <thetext>Comment on attachment 141579
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderView.cpp:414
&gt;&gt;&gt; +                OwnPtr&lt;RenderSelectionInfo&gt;&amp; blockInfo = selectedObjects.add(cb, nullptr).iterator-&gt;second;
&gt;&gt; 
&gt;&gt; I thought someone had fixed our HashMap code to not use std:pair, and thus have -&gt;key and -&gt;value instead of first/second.
&gt; 
&gt; I thought so too. This is an old patch, so it’s not surprising that this was written the old way. But given that, I wonder why this patch is building fine in EWS.

No, apparently HashMap has not been changed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622573</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-13 16:38:58 -0700</bug_when>
    <thetext>Committed r116906: &lt;http://trac.webkit.org/changeset/116906&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141579</attachid>
            <date>2012-05-12 08:36:08 -0700</date>
            <delta_ts>2012-05-13 16:38:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86300-20120512083607.patch</filename>
            <type>text/plain</type>
            <size>10026</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjg1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTEyICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5kZXJWaWV3OjpzZWxlY3Rpb25C
b3VuZHMgYW5kIFJlbmRlclZpZXc6OnNldFNlbGVjdG9pbiB1c2UgbWFwcyB3aXRoIHJhdyBwb2lu
dGVycyB0aGF0IHNob3VsZCBiZSBPd25QdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MzAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMpOiBDaGFuZ2VkIFNlbGVjdGlvbk1h
cCB0eXBlIHRvIHVzZSBPd25QdHIuCisgICAgICAgIEFkZGVkIGNvZGUgdG8gZG8gYWRvcHRQdHIg
YXMgbmVlZGVkIGFuZCByZW1vdmVkIGV4cGxpY2l0IGRlbGV0ZSBjb2RlLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKTogQ2hhbm5nZWQgU2VsZWN0ZWRCbG9ja01h
cCB0eXBlIHRvIHVzZSBPd25QdHIuCisgICAgICAgIEFkZGVkIGNvZGUgdG8gZG8gYWRvcHRQdHIg
YXMgbmVlZGVkIGFuZCByZW1vdmVkIGV4cGxpY2l0IGRlbGV0ZSBjb2RlLgorCiAyMDEyLTA1LTEy
ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBtb3ZlIHJlY29yZGluZyBidXR0b24gc3RhdGUgY29udHJvbCBvdXQgb2YgYWRk
UHJvZmlsZUhlYWRlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAJKHJldmlzaW9uIDExNjIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAwLDcgKzQwMCw3IEBAIEludFJlY3QgUmVuZGVy
Vmlldzo6c2VsZWN0aW9uQm91bmRzKGJvb2wKIHsKICAgICBkb2N1bWVudCgpLT51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgUmVuZGVy
U2VsZWN0aW9uSW5mbyo+IFNlbGVjdGlvbk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVuZGVy
T2JqZWN0KiwgT3duUHRyPFJlbmRlclNlbGVjdGlvbkluZm8+ID4gU2VsZWN0aW9uTWFwOwogICAg
IFNlbGVjdGlvbk1hcCBzZWxlY3RlZE9iamVjdHM7CiAKICAgICBSZW5kZXJPYmplY3QqIG9zID0g
bV9zZWxlY3Rpb25TdGFydDsKQEAgLTQwOCwxMyArNDA4LDEzIEBAIEludFJlY3QgUmVuZGVyVmll
dzo6c2VsZWN0aW9uQm91bmRzKGJvb2wKICAgICB3aGlsZSAob3MgJiYgb3MgIT0gc3RvcCkgewog
ICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9PSBtX3NlbGVjdGlv
blN0YXJ0IHx8IG9zID09IG1fc2VsZWN0aW9uRW5kKSAmJiBvcy0+c2VsZWN0aW9uU3RhdGUoKSAh
PSBTZWxlY3Rpb25Ob25lKSB7CiAgICAgICAgICAgICAvLyBCbG9ja3MgYXJlIHJlc3BvbnNpYmxl
IGZvciBwYWludGluZyBsaW5lIGdhcHMgYW5kIG1hcmdpbiBnYXBzLiBUaGV5IG11c3QgYmUgZXhh
bWluZWQgYXMgd2VsbC4KLSAgICAgICAgICAgIHNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIG5ldyBS
ZW5kZXJTZWxlY3Rpb25JbmZvKG9zLCBjbGlwVG9WaXNpYmxlQ29udGVudCkpOworICAgICAgICAg
ICAgc2VsZWN0ZWRPYmplY3RzLnNldChvcywgYWRvcHRQdHIobmV3IFJlbmRlclNlbGVjdGlvbklu
Zm8ob3MsIGNsaXBUb1Zpc2libGVDb250ZW50KSkpOwogICAgICAgICAgICAgUmVuZGVyQmxvY2sq
IGNiID0gb3MtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAgICAgd2hpbGUgKGNiICYmICFj
Yi0+aXNSZW5kZXJWaWV3KCkpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJTZWxlY3Rpb25JbmZv
KiBibG9ja0luZm8gPSBzZWxlY3RlZE9iamVjdHMuZ2V0KGNiKTsKKyAgICAgICAgICAgICAgICBP
d25QdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4mIGJsb2NrSW5mbyA9IHNlbGVjdGVkT2JqZWN0cy5h
ZGQoY2IsIG51bGxwdHIpLml0ZXJhdG9yLT5zZWNvbmQ7CiAgICAgICAgICAgICAgICAgaWYgKGJs
b2NrSW5mbykKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRPYmplY3RzLnNldChjYiwgbmV3IFJlbmRlclNlbGVjdGlvbkluZm8oY2IsIGNsaXBUb1Zp
c2libGVDb250ZW50KSk7CisgICAgICAgICAgICAgICAgYmxvY2tJbmZvID0gYWRvcHRQdHIobmV3
IFJlbmRlclNlbGVjdGlvbkluZm8oY2IsIGNsaXBUb1Zpc2libGVDb250ZW50KSk7CiAgICAgICAg
ICAgICAgICAgY2IgPSBjYi0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KQEAgLTQyNiw3ICs0MjYsNyBAQCBJbnRSZWN0IFJlbmRlclZpZXc6OnNlbGVjdGlvbkJv
dW5kcyhib29sCiAgICAgTGF5b3V0UmVjdCBzZWxSZWN0OwogICAgIFNlbGVjdGlvbk1hcDo6aXRl
cmF0b3IgZW5kID0gc2VsZWN0ZWRPYmplY3RzLmVuZCgpOwogICAgIGZvciAoU2VsZWN0aW9uTWFw
OjppdGVyYXRvciBpID0gc2VsZWN0ZWRPYmplY3RzLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpIHsK
LSAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogaW5mbyA9IGktPnNlY29uZDsKKyAgICAgICAg
UmVuZGVyU2VsZWN0aW9uSW5mbyogaW5mbyA9IGktPnNlY29uZC5nZXQoKTsKICAgICAgICAgLy8g
UmVuZGVyU2VsZWN0aW9uSW5mbzo6cmVjdCgpIGlzIGluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUg
cmVwYWludENvbnRhaW5lciwgc28gbWFwIHRvIHBhZ2UgY29vcmRpbmF0ZXMuCiAgICAgICAgIExh
eW91dFJlY3QgY3VyclJlY3QgPSBpbmZvLT5yZWN0KCk7CiAgICAgICAgIGlmIChSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGluZm8tPnJlcGFpbnRDb250YWluZXIoKSkg
ewpAQCAtNDM0LDcgKzQzNCw2IEBAIEludFJlY3QgUmVuZGVyVmlldzo6c2VsZWN0aW9uQm91bmRz
KGJvb2wKICAgICAgICAgICAgIGN1cnJSZWN0ID0gYWJzUXVhZC5lbmNsb3NpbmdCb3VuZGluZ0Jv
eCgpOyAKICAgICAgICAgfQogICAgICAgICBzZWxSZWN0LnVuaXRlKGN1cnJSZWN0KTsKLSAgICAg
ICAgZGVsZXRlIGluZm87CiAgICAgfQogICAgIHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KHNl
bFJlY3QpOwogfQpAQCAtNDcyLDE0ICs0NzEsMTQgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRTZWxl
Y3Rpb24oUmVuZGVyT2JqZQogICAgIGludCBvbGRFbmRQb3MgPSBtX3NlbGVjdGlvbkVuZFBvczsK
IAogICAgIC8vIE9iamVjdHMgZWFjaCBoYXZlIGEgc2luZ2xlIHNlbGVjdGlvbiByZWN0IHRvIGV4
YW1pbmUuCi0gICAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlck9iamVjdCosIFJlbmRlclNlbGVjdGlv
bkluZm8qPiBTZWxlY3RlZE9iamVjdE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyT2Jq
ZWN0KiwgT3duUHRyPFJlbmRlclNlbGVjdGlvbkluZm8+ID4gU2VsZWN0ZWRPYmplY3RNYXA7CiAg
ICAgU2VsZWN0ZWRPYmplY3RNYXAgb2xkU2VsZWN0ZWRPYmplY3RzOwogICAgIFNlbGVjdGVkT2Jq
ZWN0TWFwIG5ld1NlbGVjdGVkT2JqZWN0czsKIAogICAgIC8vIEJsb2NrcyBjb250YWluIHNlbGVj
dGVkIG9iamVjdHMgYW5kIGZpbGwgZ2FwcyBiZXR3ZWVuIHRoZW0sIGVpdGhlciBvbiB0aGUgbGVm
dCwgcmlnaHQsIG9yIGluIGJldHdlZW4gbGluZXMgYW5kIGJsb2Nrcy4KICAgICAvLyBJbiBvcmRl
ciB0byBnZXQgdGhlIHJlcGFpbnQgcmVjdCByaWdodCwgd2UgaGF2ZSB0byBleGFtaW5lIGxlZnQs
IG1pZGRsZSwgYW5kIHJpZ2h0IHJlY3RzIGluZGl2aWR1YWxseSwgc2luY2Ugb3RoZXJ3aXNlCiAg
ICAgLy8gdGhlIHVuaW9uIG9mIHRob3NlIHJlY3RzIG1pZ2h0IHJlbWFpbiB0aGUgc2FtZSBldmVu
IHdoZW4gY2hhbmdlcyBoYXZlIG9jY3VycmVkLgotICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJC
bG9jayosIFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbyo+IFNlbGVjdGVkQmxvY2tNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFJlbmRlckJsb2NrKiwgT3duUHRyPFJlbmRlckJsb2NrU2VsZWN0aW9u
SW5mbz4gPiBTZWxlY3RlZEJsb2NrTWFwOwogICAgIFNlbGVjdGVkQmxvY2tNYXAgb2xkU2VsZWN0
ZWRCbG9ja3M7CiAgICAgU2VsZWN0ZWRCbG9ja01hcCBuZXdTZWxlY3RlZEJsb2NrczsKIApAQCAt
NDg4LDE0ICs0ODcsMTQgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVyT2Jq
ZQogICAgIHdoaWxlIChvcyAmJiBvcyAhPSBzdG9wKSB7CiAgICAgICAgIGlmICgob3MtPmNhbkJl
U2VsZWN0aW9uTGVhZigpIHx8IG9zID09IG1fc2VsZWN0aW9uU3RhcnQgfHwgb3MgPT0gbV9zZWxl
Y3Rpb25FbmQpICYmIG9zLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAg
ICAgICAgICAgIC8vIEJsb2NrcyBhcmUgcmVzcG9uc2libGUgZm9yIHBhaW50aW5nIGxpbmUgZ2Fw
cyBhbmQgbWFyZ2luIGdhcHMuICBUaGV5IG11c3QgYmUgZXhhbWluZWQgYXMgd2VsbC4KLSAgICAg
ICAgICAgIG9sZFNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIG5ldyBSZW5kZXJTZWxlY3Rpb25JbmZv
KG9zLCB0cnVlKSk7CisgICAgICAgICAgICBvbGRTZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBhZG9w
dFB0cihuZXcgUmVuZGVyU2VsZWN0aW9uSW5mbyhvcywgdHJ1ZSkpKTsKICAgICAgICAgICAgIGlm
IChibG9ja1JlcGFpbnRNb2RlID09IFJlcGFpbnROZXdYT1JPbGQpIHsKICAgICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayogY2IgPSBvcy0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICAg
ICAgd2hpbGUgKGNiICYmICFjYi0+aXNSZW5kZXJWaWV3KCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvKiBibG9ja0luZm8gPSBvbGRTZWxlY3RlZEJsb2Nr
cy5nZXQoY2IpOworICAgICAgICAgICAgICAgICAgICBPd25QdHI8UmVuZGVyQmxvY2tTZWxlY3Rp
b25JbmZvPiYgYmxvY2tJbmZvID0gb2xkU2VsZWN0ZWRCbG9ja3MuYWRkKGNiLCBudWxscHRyKS5p
dGVyYXRvci0+c2Vjb25kOwogICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvKQogICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIG9sZFNlbGVj
dGVkQmxvY2tzLnNldChjYiwgbmV3IFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbyhjYikpOworICAg
ICAgICAgICAgICAgICAgICBibG9ja0luZm8gPSBhZG9wdFB0cihuZXcgUmVuZGVyQmxvY2tTZWxl
Y3Rpb25JbmZvKGNiKSk7CiAgICAgICAgICAgICAgICAgICAgIGNiID0gY2ItPmNvbnRhaW5pbmdC
bG9jaygpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTU0MiwxMyArNTQx
LDEzIEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamUKICAgICBvID0g
c3RhcnQ7CiAgICAgd2hpbGUgKG8gJiYgbyAhPSBzdG9wKSB7CiAgICAgICAgIGlmICgoby0+Y2Fu
QmVTZWxlY3Rpb25MZWFmKCkgfHwgbyA9PSBzdGFydCB8fCBvID09IGVuZCkgJiYgby0+c2VsZWN0
aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7Ci0gICAgICAgICAgICBuZXdTZWxlY3RlZE9i
amVjdHMuc2V0KG8sIG5ldyBSZW5kZXJTZWxlY3Rpb25JbmZvKG8sIHRydWUpKTsKKyAgICAgICAg
ICAgIG5ld1NlbGVjdGVkT2JqZWN0cy5zZXQobywgYWRvcHRQdHIobmV3IFJlbmRlclNlbGVjdGlv
bkluZm8obywgdHJ1ZSkpKTsKICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBjYiA9IG8tPmNvbnRh
aW5pbmdCbG9jaygpOwogICAgICAgICAgICAgd2hpbGUgKGNiICYmICFjYi0+aXNSZW5kZXJWaWV3
KCkpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8qIGJsb2NrSW5m
byA9IG5ld1NlbGVjdGVkQmxvY2tzLmdldChjYik7CisgICAgICAgICAgICAgICAgT3duUHRyPFJl
bmRlckJsb2NrU2VsZWN0aW9uSW5mbz4mIGJsb2NrSW5mbyA9IG5ld1NlbGVjdGVkQmxvY2tzLmFk
ZChjYiwgbnVsbHB0cikuaXRlcmF0b3ItPnNlY29uZDsKICAgICAgICAgICAgICAgICBpZiAoYmxv
Y2tJbmZvKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBuZXdT
ZWxlY3RlZEJsb2Nrcy5zZXQoY2IsIG5ldyBSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8oY2IpKTsK
KyAgICAgICAgICAgICAgICBibG9ja0luZm8gPSBhZG9wdFB0cihuZXcgUmVuZGVyQmxvY2tTZWxl
Y3Rpb25JbmZvKGNiKSk7CiAgICAgICAgICAgICAgICAgY2IgPSBjYi0+Y29udGFpbmluZ0Jsb2Nr
KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU1NiwxNSArNTU1LDggQEAgdm9pZCBS
ZW5kZXJWaWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVyT2JqZQogICAgICAgICBvID0gby0+bmV4dElu
UHJlT3JkZXIoKTsKICAgICB9CiAKLSAgICBpZiAoIW1fZnJhbWVWaWV3IHx8IGJsb2NrUmVwYWlu
dE1vZGUgPT0gUmVwYWludE5vdGhpbmcpIHsKLSAgICAgICAgLy8gV2UgYnVpbHQgdGhlIG1hcHMs
IGJ1dCB3ZSBhcmVuJ3QgZ29pbmcgdG8gdXNlIHRoZW0uCi0gICAgICAgIC8vIFdlIG5lZWQgdG8g
ZGVsZXRlIHRoZSB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5J2xsIGFsbCBsZWFrIQotICAgICAgICBk
ZWxldGVBbGxWYWx1ZXMob2xkU2VsZWN0ZWRPYmplY3RzKTsKLSAgICAgICAgZGVsZXRlQWxsVmFs
dWVzKG5ld1NlbGVjdGVkT2JqZWN0cyk7Ci0gICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhvbGRTZWxl
Y3RlZEJsb2Nrcyk7Ci0gICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhuZXdTZWxlY3RlZEJsb2Nrcyk7
CisgICAgaWYgKCFtX2ZyYW1lVmlldyB8fCBibG9ja1JlcGFpbnRNb2RlID09IFJlcGFpbnROb3Ro
aW5nKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgbV9mcmFtZVZpZXctPmJlZ2luRGVm
ZXJyZWRSZXBhaW50cygpOwogCkBAIC01NzIsNyArNTY0LDcgQEAgdm9pZCBSZW5kZXJWaWV3Ojpz
ZXRTZWxlY3Rpb24oUmVuZGVyT2JqZQogICAgIGZvciAoU2VsZWN0ZWRPYmplY3RNYXA6Oml0ZXJh
dG9yIGkgPSBvbGRTZWxlY3RlZE9iamVjdHMuYmVnaW4oKTsgaSAhPSBvbGRPYmplY3RzRW5kOyAr
K2kpIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiBvYmogPSBpLT5maXJzdDsKICAgICAgICAgUmVu
ZGVyU2VsZWN0aW9uSW5mbyogbmV3SW5mbyA9IG5ld1NlbGVjdGVkT2JqZWN0cy5nZXQob2JqKTsK
LSAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogb2xkSW5mbyA9IGktPnNlY29uZDsKKyAgICAg
ICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogb2xkSW5mbyA9IGktPnNlY29uZC5nZXQoKTsKICAgICAg
ICAgaWYgKCFuZXdJbmZvIHx8IG9sZEluZm8tPnJlY3QoKSAhPSBuZXdJbmZvLT5yZWN0KCkgfHwg
b2xkSW5mby0+c3RhdGUoKSAhPSBuZXdJbmZvLT5zdGF0ZSgpIHx8CiAgICAgICAgICAgICAobV9z
ZWxlY3Rpb25TdGFydCA9PSBvYmogJiYgb2xkU3RhcnRQb3MgIT0gbV9zZWxlY3Rpb25TdGFydFBv
cykgfHwKICAgICAgICAgICAgIChtX3NlbGVjdGlvbkVuZCA9PSBvYmogJiYgb2xkRW5kUG9zICE9
IG1fc2VsZWN0aW9uRW5kUG9zKSkgewpAQCAtNTgwLDQ0ICs1NzIsMzQgQEAgdm9pZCBSZW5kZXJW
aWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVyT2JqZQogICAgICAgICAgICAgaWYgKG5ld0luZm8pIHsK
ICAgICAgICAgICAgICAgICBuZXdJbmZvLT5yZXBhaW50KCk7CiAgICAgICAgICAgICAgICAgbmV3
U2VsZWN0ZWRPYmplY3RzLnJlbW92ZShvYmopOwotICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdJ
bmZvOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGRlbGV0ZSBvbGRJbmZvOwog
ICAgIH0KIAogICAgIC8vIEFueSBuZXcgb2JqZWN0cyB0aGF0IHJlbWFpbiB3ZXJlIG5vdCBmb3Vu
ZCBpbiB0aGUgb2xkIG9iamVjdHMgZGljdCwgYW5kIHNvIHRoZXkgbmVlZCB0byBiZSB1cGRhdGVk
LgogICAgIFNlbGVjdGVkT2JqZWN0TWFwOjppdGVyYXRvciBuZXdPYmplY3RzRW5kID0gbmV3U2Vs
ZWN0ZWRPYmplY3RzLmVuZCgpOwotICAgIGZvciAoU2VsZWN0ZWRPYmplY3RNYXA6Oml0ZXJhdG9y
IGkgPSBuZXdTZWxlY3RlZE9iamVjdHMuYmVnaW4oKTsgaSAhPSBuZXdPYmplY3RzRW5kOyArK2kp
IHsKLSAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogbmV3SW5mbyA9IGktPnNlY29uZDsKLSAg
ICAgICAgbmV3SW5mby0+cmVwYWludCgpOwotICAgICAgICBkZWxldGUgbmV3SW5mbzsKLSAgICB9
CisgICAgZm9yIChTZWxlY3RlZE9iamVjdE1hcDo6aXRlcmF0b3IgaSA9IG5ld1NlbGVjdGVkT2Jq
ZWN0cy5iZWdpbigpOyBpICE9IG5ld09iamVjdHNFbmQ7ICsraSkKKyAgICAgICAgaS0+c2Vjb25k
LT5yZXBhaW50KCk7CiAKICAgICAvLyBIYXZlIGFueSBvZiB0aGUgb2xkIGJsb2NrcyBjaGFuZ2Vk
PwogICAgIFNlbGVjdGVkQmxvY2tNYXA6Oml0ZXJhdG9yIG9sZEJsb2Nrc0VuZCA9IG9sZFNlbGVj
dGVkQmxvY2tzLmVuZCgpOwogICAgIGZvciAoU2VsZWN0ZWRCbG9ja01hcDo6aXRlcmF0b3IgaSA9
IG9sZFNlbGVjdGVkQmxvY2tzLmJlZ2luKCk7IGkgIT0gb2xkQmxvY2tzRW5kOyArK2kpIHsKICAg
ICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gaS0+Zmlyc3Q7CiAgICAgICAgIFJlbmRlckJsb2Nr
U2VsZWN0aW9uSW5mbyogbmV3SW5mbyA9IG5ld1NlbGVjdGVkQmxvY2tzLmdldChibG9jayk7Ci0g
ICAgICAgIFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbyogb2xkSW5mbyA9IGktPnNlY29uZDsKKyAg
ICAgICAgUmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvKiBvbGRJbmZvID0gaS0+c2Vjb25kLmdldCgp
OwogICAgICAgICBpZiAoIW5ld0luZm8gfHwgb2xkSW5mby0+cmVjdHMoKSAhPSBuZXdJbmZvLT5y
ZWN0cygpIHx8IG9sZEluZm8tPnN0YXRlKCkgIT0gbmV3SW5mby0+c3RhdGUoKSkgewogICAgICAg
ICAgICAgb2xkSW5mby0+cmVwYWludCgpOwogICAgICAgICAgICAgaWYgKG5ld0luZm8pIHsKICAg
ICAgICAgICAgICAgICBuZXdJbmZvLT5yZXBhaW50KCk7CiAgICAgICAgICAgICAgICAgbmV3U2Vs
ZWN0ZWRCbG9ja3MucmVtb3ZlKGJsb2NrKTsKLSAgICAgICAgICAgICAgICBkZWxldGUgbmV3SW5m
bzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBkZWxldGUgb2xkSW5mbzsKICAg
ICB9CiAKICAgICAvLyBBbnkgbmV3IGJsb2NrcyB0aGF0IHJlbWFpbiB3ZXJlIG5vdCBmb3VuZCBp
biB0aGUgb2xkIGJsb2NrcyBkaWN0LCBhbmQgc28gdGhleSBuZWVkIHRvIGJlIHVwZGF0ZWQuCiAg
ICAgU2VsZWN0ZWRCbG9ja01hcDo6aXRlcmF0b3IgbmV3QmxvY2tzRW5kID0gbmV3U2VsZWN0ZWRC
bG9ja3MuZW5kKCk7Ci0gICAgZm9yIChTZWxlY3RlZEJsb2NrTWFwOjppdGVyYXRvciBpID0gbmV3
U2VsZWN0ZWRCbG9ja3MuYmVnaW4oKTsgaSAhPSBuZXdCbG9ja3NFbmQ7ICsraSkgewotICAgICAg
ICBSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8qIG5ld0luZm8gPSBpLT5zZWNvbmQ7Ci0gICAgICAg
IG5ld0luZm8tPnJlcGFpbnQoKTsKLSAgICAgICAgZGVsZXRlIG5ld0luZm87Ci0gICAgfQorICAg
IGZvciAoU2VsZWN0ZWRCbG9ja01hcDo6aXRlcmF0b3IgaSA9IG5ld1NlbGVjdGVkQmxvY2tzLmJl
Z2luKCk7IGkgIT0gbmV3QmxvY2tzRW5kOyArK2kpCisgICAgICAgIGktPnNlY29uZC0+cmVwYWlu
dCgpOwogCiAgICAgbV9mcmFtZVZpZXctPmVuZERlZmVycmVkUmVwYWludHMoKTsKIH0K
</data>
<flag name="review"
          id="147737"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>