Changeset 111702 in webkit


Ignore:
Timestamp:
Mar 22, 2012 8:15:52 AM (12 years ago)
Author:
yurys@chromium.org
Message:

Unreviewed, rolling out r111688.
http://trac.webkit.org/changeset/111688
https://bugs.webkit.org/show_bug.cgi?id=81912

"Heap profiler test fails" (Requested by yurys on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-03-22

  • inspector/front-end/HeapSnapshot.js:

(WebInspector.HeapSnapshot.prototype._buildRetainers):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r111700 r111702  
     12012-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r111688.
     4        http://trac.webkit.org/changeset/111688
     5        https://bugs.webkit.org/show_bug.cgi?id=81912
     6
     7        "Heap profiler test fails" (Requested by yurys on #webkit).
     8
     9        * inspector/front-end/HeapSnapshot.js:
     10        (WebInspector.HeapSnapshot.prototype._buildRetainers):
     11
    1122012-03-22  Dana Jansens  <danakj@chromium.org>
    213
  • trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js

    r111688 r111702  
    960960    _buildRetainers: function()
    961961    {
    962         var nodeIndexes = this.nodeIndexes;
    963         var nodePositions = this._nodePosition;
    964         var nodeCount = this.nodeCount;
    965         var nodes = this._nodes;
    966 
    967         // Builds up two arrays:
    968         //  - "backRefsArray" is a continuous array, where each node owns an
    969         //    interval (can be empty) with corresponding back references.
    970         //  - "indexArray" is an array of indexes in the "backRefsArray"
    971         //    with the same positions as in the _nodeIndex.
    972         var indexArray = this._retainerIndex = new Int32Array(nodeCount);
    973         var edgesCountOffset = this._edgesCountOffset;
    974         var firstEdgeOffset = this._firstEdgeOffset;
    975         var edgeFieldsCount = this._edgeFieldsCount;
    976         var edgeToNodeOffset = this._edgeToNodeOffset;
    977         var backRefsCount = 0;
    978         // Count the number of retainers for each node
    979         for (var i = 0; i < nodeCount; ++i) {
    980             var nodeIndex = nodeIndexes[i];
    981             var edgesOffset = nodeIndex + firstEdgeOffset + edgeToNodeOffset;
    982             var edgesCount = nodes[nodeIndex + edgesCountOffset];
    983             backRefsCount += edgesCount;
    984             for (var j = 0; j < edgesCount; ++j) {
    985               var targetNodeIndex = nodes[j * edgeFieldsCount + edgesOffset];
    986               ++indexArray[nodePositions[targetNodeIndex]];
    987             }
    988         }
    989         var backRefsArray = this._retainers = new Int32Array(backRefsCount);
    990         // Put in the first slot of each backRefsArray slice the count of entries
    991         // that will be filled.
    992         var backRefsPosition = 0;
    993         for (i = 0; i < nodeCount; ++i) {
    994             backRefsCount = backRefsArray[backRefsPosition] = indexArray[i];
    995             indexArray[i] = backRefsPosition;
    996             backRefsPosition += backRefsCount;
    997         }
    998         var retainerIndex = this._retainerIndex;
    999         // Fill up the retainers array with indexes of edges.
    1000         for (var i = 0; i < nodeCount; ++i) {
    1001             var nodeIndex = nodeIndexes[i];
    1002             var edgesOffset = nodeIndex + firstEdgeOffset;
    1003             var edgesCount = nodes[nodeIndex + edgesCountOffset];
    1004             for (var j = 0; j < edgesCount; ++j) {
    1005                 var edgeIndex = j * edgeFieldsCount + edgesOffset;
    1006                 var retNode = nodePositions[nodes[edgeIndex + edgeToNodeOffset]];
    1007                 var retIndex = indexArray[retNode];
    1008                 var backRefIndex = retIndex + (--backRefsArray[retIndex]);
    1009                 backRefsArray[backRefIndex] = edgeIndex;
    1010             }
    1011         }
     962        this._buildReverseIndex(
     963            "_retainerIndex",
     964            "_retainers",
     965            (function (node, callback)
     966             {
     967                 for (var edgesIter = node.edges; edgesIter.hasNext(); edgesIter.next())
     968                     callback(this._nodePosition[edgesIter.edge.nodeIndex]);
     969             }).bind(this),
     970            (function (node, indexCallback, dataCallback)
     971             {
     972                 for (var edgesIter = node.edges; edgesIter.hasNext(); edgesIter.next()) {
     973                     var edge = edgesIter.edge;
     974                     var retIndex = this._getRetainerIndex(edge.nodeIndex);
     975                     dataCallback(indexCallback(retIndex), node.nodeIndex + this._firstEdgeOffset + edge.edgeIndex);
     976                 }
     977             }).bind(this));
    1012978    },
    1013979
Note: See TracChangeset for help on using the changeset viewer.