Changeset 111702 in webkit
- Timestamp:
- Mar 22, 2012 8:15:52 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r111700 r111702 1 2012-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 1 12 2012-03-22 Dana Jansens <danakj@chromium.org> 2 13 -
trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js
r111688 r111702 960 960 _buildRetainers: function() 961 961 { 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)); 1012 978 }, 1013 979
Note: See TracChangeset
for help on using the changeset viewer.