Title: [117296] trunk/Source/WebCore
Revision
117296
Author
[email protected]
Date
2012-05-16 08:49:36 -0700 (Wed, 16 May 2012)

Log Message

Web Inspector: Speedup heap snapshot postprocessing
https://bugs.webkit.org/show_bug.cgi?id=86635

Patch by Alexei Filippov <[email protected]> on 2012-05-16
Reviewed by Yury Semikhatsky.

* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (117295 => 117296)


--- trunk/Source/WebCore/ChangeLog	2012-05-16 15:48:01 UTC (rev 117295)
+++ trunk/Source/WebCore/ChangeLog	2012-05-16 15:49:36 UTC (rev 117296)
@@ -1,3 +1,13 @@
+2012-05-16  Alexei Filippov  <[email protected]>
+
+        Web Inspector: Speedup heap snapshot postprocessing
+        https://bugs.webkit.org/show_bug.cgi?id=86635
+
+        Reviewed by Yury Semikhatsky.
+
+        * inspector/front-end/HeapSnapshot.js:
+        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
+
 2012-05-16  Alexander Pavlov  <[email protected]>
 
         Unreviewed, followup for r117273 that fixes the Web Inspector's Computed Style pane layout.

Modified: trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js (117295 => 117296)


--- trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js	2012-05-16 15:48:01 UTC (rev 117295)
+++ trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js	2012-05-16 15:49:36 UTC (rev 117296)
@@ -1166,35 +1166,37 @@
         // via regular properties, and for DOM wrappers. Trying to access random objects
         // can cause a crash due to insonsistent state of internal properties of wrappers.
         var flag = this._nodeFlags.canBeQueried;
+        var hiddenEdgeType = this._edgeHiddenType;
+        var internalEdgeType = this._edgeInternalType;
+        var invisibleEdgeType = this._edgeInvisibleType;
+        var edgeToNodeOffset = this._edgeToNodeOffset;
+        var edgeTypeOffset = this._edgeTypeOffset;
+        var edgeFieldsCount = this._edgeFieldsCount;
 
+        var flags = this._flags;
         var list = [];
         for (var iter = this.rootNode.edges; iter.hasNext(); iter.next()) {
             if (iter.edge.node.isWindow)
                 list.push(iter.edge.node.nodeIndex);
         }
 
-        var edge = new WebInspector.HeapSnapshotEdge(this, undefined);
         var node = new WebInspector.HeapSnapshotNode(this);
         while (list.length) {
             var nodeIndex = list.pop();
-            if (this._flags[nodeIndex] & flag)
+            if (flags[nodeIndex] & flag)
                 continue;
             node.nodeIndex = nodeIndex;
-            this._flags[nodeIndex] |= flag;
+            flags[nodeIndex] |= flag;
             var edgesCount = node.edgesCount;
-            edge._edges = node.rawEdges;
+            var edges = node.rawEdges;
             for (var j = 0; j < edgesCount; ++j) {
-                edge.edgeIndex = j * this._edgeFieldsCount;
-                nodeIndex = edge.nodeIndex;
-                if (this._flags[nodeIndex] & flag)
+                var edgeIndex = j * edgeFieldsCount;
+                nodeIndex = edges.item(edgeIndex + edgeToNodeOffset);
+                if (flags[nodeIndex] & flag)
                     continue;
-                if (edge.isHidden || edge.isInvisible)
+                var type = edges.item(edgeIndex + edgeTypeOffset);
+                if (type === hiddenEdgeType || type === invisibleEdgeType || type === internalEdgeType)
                     continue;
-                if (edge.isInternal)
-                    continue;
-                var name = edge.name;
-                if (!name)
-                    continue;
                 list.push(nodeIndex);
             }
         }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to