WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
196890
Web Inspector: Heap: don't use recursion when calculating root paths
https://bugs.webkit.org/show_bug.cgi?id=196890
Summary
Web Inspector: Heap: don't use recursion when calculating root paths
Devin Rousso
Reported
2019-04-12 18:26:42 PDT
If a path is extremely deep, it can cause a stack overflow.
Attachments
Patch
(3.77 KB, patch)
2019-04-12 18:30 PDT
,
Devin Rousso
no flags
Details
Formatted Diff
Diff
Patch
(4.23 KB, patch)
2019-04-15 14:35 PDT
,
Devin Rousso
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2019-04-12 18:28:46 PDT
<
rdar://problem/49870751
>
Devin Rousso
Comment 2
2019-04-12 18:30:30 PDT
Created
attachment 367366
[details]
Patch
Joseph Pecoraro
Comment 3
2019-04-15 11:18:04 PDT
Comment on
attachment 367366
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=367366&action=review
r=me
> Source/WebInspectorUI/UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:756 > + for (let i = 0; i < stack.length; ++i) { > + let {currentPath, nodeOrdinal} = stack[i];
This list is not being treated as a stack. In fact it is always growing because nothing nothing is ever removed. Normally when we have a stack approach like this we process it to exhaustion like this: let stack = [{...entry...}]; while (stack.length) { let entry = stack.pop(); // Process entry, maybe push new stack entries. } Which I think could be done here as long as you convert these two lines to: while (stack.length) { let {currentPath, nodeOridinal} = stack.pop(); ... That said, items are going to be processes on the stack in reverse order... so to get unchanging output you could iterate the edges in forward order such as: while (stack.length) { let {currentPath, nodeOridinal} = stack.unshift(); ... That should get you output that is consistent with the current code.
Devin Rousso
Comment 4
2019-04-15 14:35:21 PDT
Created
attachment 367460
[details]
Patch
WebKit Commit Bot
Comment 5
2019-04-15 16:49:09 PDT
Comment on
attachment 367460
[details]
Patch Clearing flags on attachment: 367460 Committed
r244308
: <
https://trac.webkit.org/changeset/244308
>
WebKit Commit Bot
Comment 6
2019-04-15 16:49:10 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug