<?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>107425</bug_id>
          
          <creation_ts>2013-01-21 00:17:11 -0800</creation_ts>
          <short_desc>Web Inspector: heap profiler shows nodes with distance 0</short_desc>
          <delta_ts>2019-11-13 14:21:08 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          <dependson>100140</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>haraken</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>811895</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-21 00:17:11 -0800</bug_when>
    <thetext>In some cases we see nodes with distance 0 retaining nodes with distance e.g. 7 All retainers of nodes with distance N should have distance &gt;=N-1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813909</commentid>
    <comment_count>1</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-22 23:43:36 -0800</bug_when>
    <thetext>It was likely broken in https://bugs.webkit.org/show_bug.cgi?id=100140 where 
v8::V8::SetGlobalGCPrologueCallback(&amp;V8GCController::gcPrologue) call was replaced with v8::V8::AddGCPrologueCallback(&amp;V8GCController::gcPrologue). Now heap profiler is not aware of the implicit references between DOM node wrappers and event listener functions. Such functions end up as having only weak handle to them and break heap profiler which doesn&apos;t expect any alive objects without strong references. The functions appear as having no retainers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814006</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-23 01:51:06 -0800</bug_when>
    <thetext>Patch sent to v8: https://codereview.chromium.org/11953043/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814154</commentid>
    <comment_count>3</comment_count>
      <attachid>184217</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-23 06:25:07 -0800</bug_when>
    <thetext>Created attachment 184217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814163</commentid>
    <comment_count>4</comment_count>
      <attachid>184217</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-01-23 06:41:26 -0800</bug_when>
    <thetext>Comment on attachment 184217
Patch

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

&gt; Source/WebCore/inspector/front-end/JSHeapSnapshot.js:240
&gt; +            var edgeType = containmentEdges[edgeIndex + edgeTypeOffset];
&gt; +            var nodeOrdinal;
&gt; +            if (edgeType === edgeShortcutType)
&gt; +                nodeOrdinal = containmentEdges[edgeIndex + edgeToNodeOffset] / nodeFieldCount;
&gt; +            else if (edgeType === edgeElementType) {
&gt; +                node.nodeIndex = containmentEdges[edgeIndex + edgeToNodeOffset];
&gt; +                if (node.isDocumentDOMTreesRoot())
&gt; +                    nodeOrdinal = node.nodeIndex / nodeFieldCount;
&gt; +                else
&gt; +                    continue;
&gt; +            } else
&gt; +                continue;
&gt; +            nodesToVisit[nodesToVisitLength++] = nodeOrdinal;
&gt; +            flags[nodeOrdinal] |= visitedMarker;

I&apos;d invert the conditions:

var edgeType = containmentEdges[edgeIndex + edgeTypeOffset];
var nodeIndex = containmentEdges[edgeIndex + edgeToNodeOffset];
if (edgeType === edgeElementType) {
    if (!node.isDocumentDOMTreesRoot())
        continue;
} else if (edgeType !== edgeShortcutType)
    continue;
var nodeOrdinal = nodeIndex / nodeFieldCount;
nodesToVisit[nodesToVisitLength++] = nodeOrdinal;
flags[nodeOrdinal] |= visitedMarker;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814167</commentid>
    <comment_count>5</comment_count>
      <attachid>184217</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-01-23 06:46:33 -0800</bug_when>
    <thetext>Comment on attachment 184217
Patch

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

&gt; Source/WebCore/inspector/front-end/HeapSnapshot.js:781
&gt; +    distanceForUserRoot: function(node)

How about initialDistance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814170</commentid>
    <comment_count>6</comment_count>
      <attachid>184224</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-23 06:56:01 -0800</bug_when>
    <thetext>Created attachment 184224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814171</commentid>
    <comment_count>7</comment_count>
      <attachid>184217</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-23 06:57:10 -0800</bug_when>
    <thetext>Comment on attachment 184217
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/HeapSnapshot.js:781
&gt;&gt; +    distanceForUserRoot: function(node)
&gt; 
&gt; How about initialDistance?

I&apos;d like the method name to reflect that is supposed to be called only on potential user roots. If node is not a user root it should return -1.

&gt;&gt; Source/WebCore/inspector/front-end/JSHeapSnapshot.js:240
&gt;&gt; +            flags[nodeOrdinal] |= visitedMarker;
&gt; 
&gt; I&apos;d invert the conditions:
&gt; 
&gt; var edgeType = containmentEdges[edgeIndex + edgeTypeOffset];
&gt; var nodeIndex = containmentEdges[edgeIndex + edgeToNodeOffset];
&gt; if (edgeType === edgeElementType) {
&gt;     if (!node.isDocumentDOMTreesRoot())
&gt;         continue;
&gt; } else if (edgeType !== edgeShortcutType)
&gt;     continue;
&gt; var nodeOrdinal = nodeIndex / nodeFieldCount;
&gt; nodesToVisit[nodesToVisitLength++] = nodeOrdinal;
&gt; flags[nodeOrdinal] |= visitedMarker;

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814173</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-23 07:03:33 -0800</bug_when>
    <thetext>Committed r140535: &lt;http://trac.webkit.org/changeset/140535&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815220</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-24 01:09:27 -0800</bug_when>
    <thetext>V8 fix was committed https://code.google.com/p/v8/source/detail?r=13486, we should wait until it is rolled to Chromium and see if the problems disappears.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054919</commentid>
    <comment_count>10</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-12-12 13:29:17 -0800</bug_when>
    <thetext>Closing as invalid, as this bug pertains to the old inspector UI and/or its tests.
Please file a new bug (https://www.webkit.org/new-inspector-bug) if the bug/feature/issue is still relevant to WebKit trunk.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184217</attachid>
            <date>2013-01-23 06:25:07 -0800</date>
            <delta_ts>2013-01-23 06:57:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107425-20130123182159.patch</filename>
            <type>text/plain</type>
            <size>5867</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyMDkzNGIwMjQ3ZmVh
MjQxN2NkZDA1NjdjMjE1ZDFkYTEwYWMxOS4uYzViN2UxYTNjNzZhNWNlNWIwYzU2OTZkMjgwYjUy
MWYxY2Y4MmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAxLTIzICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGhlYXAgcHJvZmlsZXIgc2hvd3Mgbm9kZXMgd2l0aCBkaXN0YW5jZSAwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0MjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAiRG9jdW1lbnQgRE9NIHRyZWUi
IGVudGl0aWVzIG5vdyBoYXZlIGRpc3RhbmNlIDEuIFNvIGlmIHRoZXJlIGlzIGEgRE9NCisgICAg
ICAgIHdyYXBwZXIgdGhhdCBpcyBub3QgcmVmZXJlbmNlZCBmcm9tIGphdmFzY3JpcHQgaXQgd2ls
bCBhbnl3YXlzIGJlIHNob3duCisgICAgICAgIGluIHRoZSBoZWFwIHNuYXBzaG90IGFuZCB3aWxs
IGhhdmUgZGlzdGFuY2UgMi4gQWxzbyBzdWNoIERPTSB3cmFwcGVycworICAgICAgICBhcmUgY29u
c2lkZXJlZCB0byBiZSByZWFjaGFibGUgZnJvbSB1c2VyIHJvb3RzIChlLmcuIGdsb2JhbCBXaW5k
b3cgb2JqZWN0cykKKyAgICAgICAgb3RoZXJ3aWNlIHRoZXkgYXJlIG5vdCBldmVudCBzaG93biBp
biB0aGUgaGVhcCBzbmFwc2hvdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hl
YXBTbmFwc2hvdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90
eXBlLmRpc3RhbmNlRm9yVXNlclJvb3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdC5wcm90b3R5cGUuX2NhbGN1bGF0ZURpc3RhbmNlcyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9KU0hlYXBTbmFwc2hvdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KU0hl
YXBTbmFwc2hvdC5wcm90b3R5cGUuZGlzdGFuY2VGb3JVc2VyUm9vdCk6IGRpc3RhbmNlIGZvciAK
KyAgICAgICAgIihEb2N1bWVudCBET00gdHJlZXMpIiBpcyBzZXQgdG8gMCB0byBtYWtlIHN1cmUg
ZGlzdGFuY2Ugb2YgIkRkb2N1bWVudCBET00gdHJlZSIgaXMgMS4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5KU0hlYXBTbmFwc2hvdC5wcm90b3R5cGUuX21hcmtQYWdlT3duZWROb2Rlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZS5pc0RvY3VtZW50
RE9NVHJlZXNSb290KToKKwogMjAxMy0wMS0yMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggY2xvc3VyZSBjb21waWxlciB3
YXJuaW5nIGluIGluc3BlY3RvciBmcm9udC1lbmQgYWZ0ZXIgcjE0MDM5MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKaW5kZXggNzUz
ZWM1ZjQ5MzM3MTI2MTRkZjcyZjRjMTVjM2VhYjUxNjkwODI0NC4uODE0Yzc0NDM5YzAzMDM4ZjAx
NjZlZTRlNTJlMjkxYTg3NTc4ZTBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKQEAgLTc3OCw5ICs3NzgsOSBAQCBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2Fn
Z3JlZ2F0ZXNGb3JEaWZmOwogICAgIH0sCiAKLSAgICBjYW5IYXZlRGlzdGFuY2VPbmU6IGZ1bmN0
aW9uKG5vZGUpCisgICAgZGlzdGFuY2VGb3JVc2VyUm9vdDogZnVuY3Rpb24obm9kZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gMTsKICAgICB9LAogCiAgICAg
X2NhbGN1bGF0ZURpc3RhbmNlczogZnVuY3Rpb24oKQpAQCAtNzkzLDkgKzc5MywxMCBAQCBXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGVzVG9W
aXNpdExlbmd0aCA9IDA7CiAgICAgICAgIGZvciAodmFyIGl0ZXIgPSB0aGlzLnJvb3ROb2RlKCku
ZWRnZXMoKTsgaXRlci5oYXNOZXh0KCk7IGl0ZXIubmV4dCgpKSB7CiAgICAgICAgICAgICB2YXIg
bm9kZSA9IGl0ZXIuZWRnZS5ub2RlKCk7Ci0gICAgICAgICAgICBpZiAodGhpcy5jYW5IYXZlRGlz
dGFuY2VPbmUobm9kZSkpIHsKKyAgICAgICAgICAgIHZhciBkaXN0YW5jZSA9IHRoaXMuZGlzdGFu
Y2VGb3JVc2VyUm9vdChub2RlKTsKKyAgICAgICAgICAgIGlmIChkaXN0YW5jZSAhPT0gLTEpIHsK
ICAgICAgICAgICAgICAgICBub2Rlc1RvVmlzaXRbbm9kZXNUb1Zpc2l0TGVuZ3RoKytdID0gbm9k
ZS5ub2RlSW5kZXg7Ci0gICAgICAgICAgICAgICAgZGlzdGFuY2VzW25vZGUubm9kZUluZGV4IC8g
bm9kZUZpZWxkQ291bnRdID0gMTsKKyAgICAgICAgICAgICAgICBkaXN0YW5jZXNbbm9kZS5ub2Rl
SW5kZXggLyBub2RlRmllbGRDb3VudF0gPSBkaXN0YW5jZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICB0aGlzLl9iZnMobm9kZXNUb1Zpc2l0LCBub2Rlc1RvVmlzaXRMZW5ndGgs
IGRpc3RhbmNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0pTSGVhcFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9KU0hlYXBTbmFwc2hvdC5qcwppbmRleCA5NDgwYmEzNDk5MDJkYjM4YWI5MjEzMjRiZjYyNjRj
NTc2MzE5ZjE1Li5lNjk3MWYzZjIyYmFlYjgyN2U5NmY5ZDU1ZTY2MGUzZGZlNDY2OWI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0pTSGVhcFNuYXBzaG90
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSlNIZWFwU25hcHNo
b3QuanMKQEAgLTEwMiw5ICsxMDIsMTMgQEAgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbWFya1BhZ2VPd25lZE5vZGVzKCk7CiAgICAgfSwK
IAotICAgIGNhbkhhdmVEaXN0YW5jZU9uZTogZnVuY3Rpb24obm9kZSkKKyAgICBkaXN0YW5jZUZv
clVzZXJSb290OiBmdW5jdGlvbihub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUuaXNX
aW5kb3coKTsKKyAgICAgICAgaWYgKG5vZGUuaXNXaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICBpZiAobm9kZS5pc0RvY3VtZW50RE9NVHJlZXNSb290KCkpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0sCiAKICAgICB1c2VyT2Jq
ZWN0c01hcEFuZEZsYWc6IGZ1bmN0aW9uKCkKQEAgLTE5NCw2ICsxOTgsNyBAQCBXZWJJbnNwZWN0
b3IuSlNIZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAgIF9tYXJrUGFnZU93bmVkTm9kZXM6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBlZGdlU2hvcnRjdXRUeXBlID0gdGhpcy5f
ZWRnZVNob3J0Y3V0VHlwZTsKKyAgICAgICAgdmFyIGVkZ2VFbGVtZW50VHlwZSA9IHRoaXMuX2Vk
Z2VFbGVtZW50VHlwZTsKICAgICAgICAgdmFyIGVkZ2VUb05vZGVPZmZzZXQgPSB0aGlzLl9lZGdl
VG9Ob2RlT2Zmc2V0OwogICAgICAgICB2YXIgZWRnZVR5cGVPZmZzZXQgPSB0aGlzLl9lZGdlVHlw
ZU9mZnNldDsKICAgICAgICAgdmFyIGVkZ2VGaWVsZHNDb3VudCA9IHRoaXMuX2VkZ2VGaWVsZHND
b3VudDsKQEAgLTIxNSwxNCArMjIwLDI0IEBAIFdlYkluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBub2Rlc1RvVmlzaXRMZW5ndGggPSAwOwogCiAgICAg
ICAgIHZhciByb290Tm9kZU9yZGluYWwgPSB0aGlzLl9yb290Tm9kZUluZGV4IC8gbm9kZUZpZWxk
Q291bnQ7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5yb290Tm9kZSgpOwogICAgICAgICBmb3Ig
KHZhciBlZGdlSW5kZXggPSBmaXJzdEVkZ2VJbmRleGVzW3Jvb3ROb2RlT3JkaW5hbF0sIGVuZEVk
Z2VJbmRleCA9IGZpcnN0RWRnZUluZGV4ZXNbcm9vdE5vZGVPcmRpbmFsICsgMV07CiAgICAgICAg
ICAgICAgZWRnZUluZGV4IDwgZW5kRWRnZUluZGV4OwogICAgICAgICAgICAgIGVkZ2VJbmRleCAr
PSBlZGdlRmllbGRzQ291bnQpIHsKLSAgICAgICAgICAgIGlmIChjb250YWlubWVudEVkZ2VzW2Vk
Z2VJbmRleCArIGVkZ2VUeXBlT2Zmc2V0XSA9PT0gZWRnZVNob3J0Y3V0VHlwZSkgewotICAgICAg
ICAgICAgICAgIHZhciBub2RlT3JkaW5hbCA9IGNvbnRhaW5tZW50RWRnZXNbZWRnZUluZGV4ICsg
ZWRnZVRvTm9kZU9mZnNldF0gLyBub2RlRmllbGRDb3VudDsKLSAgICAgICAgICAgICAgICBub2Rl
c1RvVmlzaXRbbm9kZXNUb1Zpc2l0TGVuZ3RoKytdID0gbm9kZU9yZGluYWw7Ci0gICAgICAgICAg
ICAgICAgZmxhZ3Nbbm9kZU9yZGluYWxdIHw9IHZpc2l0ZWRNYXJrZXI7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICB2YXIgZWRnZVR5cGUgPSBjb250YWlubWVudEVkZ2VzW2VkZ2VJbmRleCAr
IGVkZ2VUeXBlT2Zmc2V0XTsKKyAgICAgICAgICAgIHZhciBub2RlT3JkaW5hbDsKKyAgICAgICAg
ICAgIGlmIChlZGdlVHlwZSA9PT0gZWRnZVNob3J0Y3V0VHlwZSkKKyAgICAgICAgICAgICAgICBu
b2RlT3JkaW5hbCA9IGNvbnRhaW5tZW50RWRnZXNbZWRnZUluZGV4ICsgZWRnZVRvTm9kZU9mZnNl
dF0gLyBub2RlRmllbGRDb3VudDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGVkZ2VUeXBlID09PSBl
ZGdlRWxlbWVudFR5cGUpIHsKKyAgICAgICAgICAgICAgICBub2RlLm5vZGVJbmRleCA9IGNvbnRh
aW5tZW50RWRnZXNbZWRnZUluZGV4ICsgZWRnZVRvTm9kZU9mZnNldF07CisgICAgICAgICAgICAg
ICAgaWYgKG5vZGUuaXNEb2N1bWVudERPTVRyZWVzUm9vdCgpKQorICAgICAgICAgICAgICAgICAg
ICBub2RlT3JkaW5hbCA9IG5vZGUubm9kZUluZGV4IC8gbm9kZUZpZWxkQ291bnQ7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbm9kZXNUb1Zp
c2l0W25vZGVzVG9WaXNpdExlbmd0aCsrXSA9IG5vZGVPcmRpbmFsOworICAgICAgICAgICAgZmxh
Z3Nbbm9kZU9yZGluYWxdIHw9IHZpc2l0ZWRNYXJrZXI7CiAgICAgICAgIH0KIAogICAgICAgICB3
aGlsZSAobm9kZXNUb1Zpc2l0TGVuZ3RoKSB7CkBAIC0zMjUsNiArMzQwLDExIEBAIFdlYkluc3Bl
Y3Rvci5KU0hlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhp
cy5uYW1lKCkgPT09ICIoRGV0YWNoZWQgRE9NIHRyZWVzKSI7CiAgICAgfSwKIAorICAgIGlzRG9j
dW1lbnRET01UcmVlc1Jvb3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmlzU3ludGhldGljKCkgJiYgdGhpcy5uYW1lKCkgPT09ICIoRG9jdW1lbnQgRE9NIHRyZWVzKSI7
CisgICAgfSwKKwogICAgIGlzRGV0YWNoZWRET01UcmVlOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBjb25zdCBkZXRhY2hlZERPTVRyZWVSRSA9IC9eRGV0YWNoZWQgRE9NIHRyZWUvOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184224</attachid>
            <date>2013-01-23 06:56:01 -0800</date>
            <delta_ts>2019-11-13 14:21:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107425-20130123185253.patch</filename>
            <type>text/plain</type>
            <size>5733</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyMDkzNGIwMjQ3ZmVh
MjQxN2NkZDA1NjdjMjE1ZDFkYTEwYWMxOS4uYzViN2UxYTNjNzZhNWNlNWIwYzU2OTZkMjgwYjUy
MWYxY2Y4MmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAxLTIzICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGhlYXAgcHJvZmlsZXIgc2hvd3Mgbm9kZXMgd2l0aCBkaXN0YW5jZSAwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0MjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAiRG9jdW1lbnQgRE9NIHRyZWUi
IGVudGl0aWVzIG5vdyBoYXZlIGRpc3RhbmNlIDEuIFNvIGlmIHRoZXJlIGlzIGEgRE9NCisgICAg
ICAgIHdyYXBwZXIgdGhhdCBpcyBub3QgcmVmZXJlbmNlZCBmcm9tIGphdmFzY3JpcHQgaXQgd2ls
bCBhbnl3YXlzIGJlIHNob3duCisgICAgICAgIGluIHRoZSBoZWFwIHNuYXBzaG90IGFuZCB3aWxs
IGhhdmUgZGlzdGFuY2UgMi4gQWxzbyBzdWNoIERPTSB3cmFwcGVycworICAgICAgICBhcmUgY29u
c2lkZXJlZCB0byBiZSByZWFjaGFibGUgZnJvbSB1c2VyIHJvb3RzIChlLmcuIGdsb2JhbCBXaW5k
b3cgb2JqZWN0cykKKyAgICAgICAgb3RoZXJ3aWNlIHRoZXkgYXJlIG5vdCBldmVudCBzaG93biBp
biB0aGUgaGVhcCBzbmFwc2hvdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hl
YXBTbmFwc2hvdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90
eXBlLmRpc3RhbmNlRm9yVXNlclJvb3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdC5wcm90b3R5cGUuX2NhbGN1bGF0ZURpc3RhbmNlcyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9KU0hlYXBTbmFwc2hvdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KU0hl
YXBTbmFwc2hvdC5wcm90b3R5cGUuZGlzdGFuY2VGb3JVc2VyUm9vdCk6IGRpc3RhbmNlIGZvciAK
KyAgICAgICAgIihEb2N1bWVudCBET00gdHJlZXMpIiBpcyBzZXQgdG8gMCB0byBtYWtlIHN1cmUg
ZGlzdGFuY2Ugb2YgIkRkb2N1bWVudCBET00gdHJlZSIgaXMgMS4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5KU0hlYXBTbmFwc2hvdC5wcm90b3R5cGUuX21hcmtQYWdlT3duZWROb2Rlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZS5pc0RvY3VtZW50
RE9NVHJlZXNSb290KToKKwogMjAxMy0wMS0yMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggY2xvc3VyZSBjb21waWxlciB3
YXJuaW5nIGluIGluc3BlY3RvciBmcm9udC1lbmQgYWZ0ZXIgcjE0MDM5MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKaW5kZXggNzUz
ZWM1ZjQ5MzM3MTI2MTRkZjcyZjRjMTVjM2VhYjUxNjkwODI0NC4uODE0Yzc0NDM5YzAzMDM4ZjAx
NjZlZTRlNTJlMjkxYTg3NTc4ZTBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKQEAgLTc3OCw5ICs3NzgsOSBAQCBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2Fn
Z3JlZ2F0ZXNGb3JEaWZmOwogICAgIH0sCiAKLSAgICBjYW5IYXZlRGlzdGFuY2VPbmU6IGZ1bmN0
aW9uKG5vZGUpCisgICAgZGlzdGFuY2VGb3JVc2VyUm9vdDogZnVuY3Rpb24obm9kZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gMTsKICAgICB9LAogCiAgICAg
X2NhbGN1bGF0ZURpc3RhbmNlczogZnVuY3Rpb24oKQpAQCAtNzkzLDkgKzc5MywxMCBAQCBXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGVzVG9W
aXNpdExlbmd0aCA9IDA7CiAgICAgICAgIGZvciAodmFyIGl0ZXIgPSB0aGlzLnJvb3ROb2RlKCku
ZWRnZXMoKTsgaXRlci5oYXNOZXh0KCk7IGl0ZXIubmV4dCgpKSB7CiAgICAgICAgICAgICB2YXIg
bm9kZSA9IGl0ZXIuZWRnZS5ub2RlKCk7Ci0gICAgICAgICAgICBpZiAodGhpcy5jYW5IYXZlRGlz
dGFuY2VPbmUobm9kZSkpIHsKKyAgICAgICAgICAgIHZhciBkaXN0YW5jZSA9IHRoaXMuZGlzdGFu
Y2VGb3JVc2VyUm9vdChub2RlKTsKKyAgICAgICAgICAgIGlmIChkaXN0YW5jZSAhPT0gLTEpIHsK
ICAgICAgICAgICAgICAgICBub2Rlc1RvVmlzaXRbbm9kZXNUb1Zpc2l0TGVuZ3RoKytdID0gbm9k
ZS5ub2RlSW5kZXg7Ci0gICAgICAgICAgICAgICAgZGlzdGFuY2VzW25vZGUubm9kZUluZGV4IC8g
bm9kZUZpZWxkQ291bnRdID0gMTsKKyAgICAgICAgICAgICAgICBkaXN0YW5jZXNbbm9kZS5ub2Rl
SW5kZXggLyBub2RlRmllbGRDb3VudF0gPSBkaXN0YW5jZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICB0aGlzLl9iZnMobm9kZXNUb1Zpc2l0LCBub2Rlc1RvVmlzaXRMZW5ndGgs
IGRpc3RhbmNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0pTSGVhcFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9KU0hlYXBTbmFwc2hvdC5qcwppbmRleCA5NDgwYmEzNDk5MDJkYjM4YWI5MjEzMjRiZjYyNjRj
NTc2MzE5ZjE1Li5mMDVmYTYwODA1YjQzNDYyNjdhMTA3Yjk0YzgwODllMTA5NDRhNWNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0pTSGVhcFNuYXBzaG90
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSlNIZWFwU25hcHNo
b3QuanMKQEAgLTEwMiw5ICsxMDIsMTMgQEAgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbWFya1BhZ2VPd25lZE5vZGVzKCk7CiAgICAgfSwK
IAotICAgIGNhbkhhdmVEaXN0YW5jZU9uZTogZnVuY3Rpb24obm9kZSkKKyAgICBkaXN0YW5jZUZv
clVzZXJSb290OiBmdW5jdGlvbihub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGUuaXNX
aW5kb3coKTsKKyAgICAgICAgaWYgKG5vZGUuaXNXaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICBpZiAobm9kZS5pc0RvY3VtZW50RE9NVHJlZXNSb290KCkpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0sCiAKICAgICB1c2VyT2Jq
ZWN0c01hcEFuZEZsYWc6IGZ1bmN0aW9uKCkKQEAgLTE5NCw2ICsxOTgsNyBAQCBXZWJJbnNwZWN0
b3IuSlNIZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAgIF9tYXJrUGFnZU93bmVkTm9kZXM6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBlZGdlU2hvcnRjdXRUeXBlID0gdGhpcy5f
ZWRnZVNob3J0Y3V0VHlwZTsKKyAgICAgICAgdmFyIGVkZ2VFbGVtZW50VHlwZSA9IHRoaXMuX2Vk
Z2VFbGVtZW50VHlwZTsKICAgICAgICAgdmFyIGVkZ2VUb05vZGVPZmZzZXQgPSB0aGlzLl9lZGdl
VG9Ob2RlT2Zmc2V0OwogICAgICAgICB2YXIgZWRnZVR5cGVPZmZzZXQgPSB0aGlzLl9lZGdlVHlw
ZU9mZnNldDsKICAgICAgICAgdmFyIGVkZ2VGaWVsZHNDb3VudCA9IHRoaXMuX2VkZ2VGaWVsZHND
b3VudDsKQEAgLTIxNSwxNCArMjIwLDIxIEBAIFdlYkluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBub2Rlc1RvVmlzaXRMZW5ndGggPSAwOwogCiAgICAg
ICAgIHZhciByb290Tm9kZU9yZGluYWwgPSB0aGlzLl9yb290Tm9kZUluZGV4IC8gbm9kZUZpZWxk
Q291bnQ7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5yb290Tm9kZSgpOwogICAgICAgICBmb3Ig
KHZhciBlZGdlSW5kZXggPSBmaXJzdEVkZ2VJbmRleGVzW3Jvb3ROb2RlT3JkaW5hbF0sIGVuZEVk
Z2VJbmRleCA9IGZpcnN0RWRnZUluZGV4ZXNbcm9vdE5vZGVPcmRpbmFsICsgMV07CiAgICAgICAg
ICAgICAgZWRnZUluZGV4IDwgZW5kRWRnZUluZGV4OwogICAgICAgICAgICAgIGVkZ2VJbmRleCAr
PSBlZGdlRmllbGRzQ291bnQpIHsKLSAgICAgICAgICAgIGlmIChjb250YWlubWVudEVkZ2VzW2Vk
Z2VJbmRleCArIGVkZ2VUeXBlT2Zmc2V0XSA9PT0gZWRnZVNob3J0Y3V0VHlwZSkgewotICAgICAg
ICAgICAgICAgIHZhciBub2RlT3JkaW5hbCA9IGNvbnRhaW5tZW50RWRnZXNbZWRnZUluZGV4ICsg
ZWRnZVRvTm9kZU9mZnNldF0gLyBub2RlRmllbGRDb3VudDsKLSAgICAgICAgICAgICAgICBub2Rl
c1RvVmlzaXRbbm9kZXNUb1Zpc2l0TGVuZ3RoKytdID0gbm9kZU9yZGluYWw7Ci0gICAgICAgICAg
ICAgICAgZmxhZ3Nbbm9kZU9yZGluYWxdIHw9IHZpc2l0ZWRNYXJrZXI7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICB2YXIgZWRnZVR5cGUgPSBjb250YWlubWVudEVkZ2VzW2VkZ2VJbmRleCAr
IGVkZ2VUeXBlT2Zmc2V0XTsKKyAgICAgICAgICAgIHZhciBub2RlSW5kZXggPSBjb250YWlubWVu
dEVkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb05vZGVPZmZzZXRdOworICAgICAgICAgICAgaWYgKGVk
Z2VUeXBlID09PSBlZGdlRWxlbWVudFR5cGUpIHsKKyAgICAgICAgICAgICAgICBub2RlLm5vZGVJ
bmRleCA9IG5vZGVJbmRleDsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUuaXNEb2N1bWVudERP
TVRyZWVzUm9vdCgpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoZWRnZVR5cGUgIT09IGVkZ2VTaG9ydGN1dFR5cGUpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICB2YXIgbm9kZU9yZGluYWwgPSBub2RlSW5kZXggLyBu
b2RlRmllbGRDb3VudDsKKyAgICAgICAgICAgIG5vZGVzVG9WaXNpdFtub2Rlc1RvVmlzaXRMZW5n
dGgrK10gPSBub2RlT3JkaW5hbDsKKyAgICAgICAgICAgIGZsYWdzW25vZGVPcmRpbmFsXSB8PSB2
aXNpdGVkTWFya2VyOwogICAgICAgICB9CiAKICAgICAgICAgd2hpbGUgKG5vZGVzVG9WaXNpdExl
bmd0aCkgewpAQCAtMzI1LDYgKzMzNywxMSBAQCBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3RO
b2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSgpID09PSAiKERldGFj
aGVkIERPTSB0cmVlcykiOwogICAgIH0sCiAKKyAgICBpc0RvY3VtZW50RE9NVHJlZXNSb290OiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5pc1N5bnRoZXRpYygpICYmIHRo
aXMubmFtZSgpID09PSAiKERvY3VtZW50IERPTSB0cmVlcykiOworICAgIH0sCisKICAgICBpc0Rl
dGFjaGVkRE9NVHJlZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgY29uc3QgZGV0YWNoZWRE
T01UcmVlUkUgPSAvXkRldGFjaGVkIERPTSB0cmVlLzsK
</data>
<flag name="review"
          id="202887"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>