Closed Bug 684595 Opened 9 years ago Closed 9 years ago
Don't visit Weak
Map keys from the Weak Map in mark Entry
During non-GC marking, we visit keys and values in a WeakMap. Visiting values is nice because it means that the reachability relation implied by JS_TraceChildren is a strict subset of the real reachability relation, without the overhead of actually marking keys to get the true reachability relation. However, I can't really see any justification for visiting keys, as there's never any path from a WeakMap to the key that it contains, so let's get rid of that. See Bug 681104 for a list of non-GCmarking clients that use this. It looks to me like they should all be okay with this change.
Try run of this came back looking okay.
Attachment #558160 - Flags: review?(jorendorff)
Try run for 59444eacb69a is complete. Detailed breakdown of the results available here: http://tbpl.allizom.org/?tree=Try&usebuildbot=1&rev=59444eacb69a Results (out of 152 total builds): exception: 1 success: 143 warnings: 7 failure: 1 Builds available at http://firstname.lastname@example.org
Comment on attachment 558160 [details] [diff] [review] don't visit keys in markEntry OK, looks good. While you're in here, would you please fix the comment about markEntryIfLive, just above the part you modified? It says: // A typical definition of markIteratively would be: but the method name has changed; it's not markIteratively anymore.
Attachment #558160 - Flags: review?(jorendorff) → review+
Will do, thanks!
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla9
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
For the post-verifier, we really need the keys to be visited as well. Bug 772229
In the interest of completeness, I should say that I have no idea why I decided we should not visit keys. But I was quite convinced of it at the time...
You need to log in before you can comment on or make changes to this bug.