Closed
Bug 1182657
Opened 9 years ago
Closed 9 years ago
Use the same layout for PersistentRooted as for Rooted
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
INVALID
Tracking | Status | |
---|---|---|
firefox42 | --- | affected |
People
(Reporter: terrence, Assigned: terrence)
References
(Blocks 1 open bug)
Details
Attachments
(3 files, 1 obsolete file)
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
Details | Diff | Splinter Review |
This is a series of three patches that moves PersistentRooted and Rooteds mechanisms closer together in simple, and hopefully, obviously-correct steps.
Attachment #8632293 -
Flags: review?(jimb)
Assignee | ||
Comment 1•9 years ago
|
||
Use FOR_EACH_GC_LAYOUT to reduce the code volume.
Attachment #8632294 -
Flags: review?(jimb)
Assignee | ||
Comment 2•9 years ago
|
||
Move the two blocks of code adjacent so that it's easier to mutate them in parallel and maybe merge them once they have the same set of mechanisms.
Attachment #8632296 -
Flags: review?(jimb)
Assignee | ||
Comment 3•9 years ago
|
||
Comment on attachment 8632294 [details] [diff] [review]
2_coalesce_persistentrooted-v0.diff
Review of attachment 8632294 [details] [diff] [review]:
-----------------------------------------------------------------
Uhg, actually it looks like we already have a user of PersistentRooted<JSPropertyDescriptor>, but for some reason it's not used in my local builds, only on Try. I must be skipping something in IPC somehow? In any case, I need to redo this.
Attachment #8632294 -
Flags: review?(jimb)
Assignee | ||
Updated•9 years ago
|
Attachment #8632296 -
Flags: review?(jimb)
Assignee | ||
Comment 4•9 years ago
|
||
Nope, I'm not missing anything. It must be a compiler version issue or something -- the ones on try are all managing to instantiate PermanentRooted<JSPropertyDescriptor> when passing Rooted<JSPropertyDescriptor> to a MutableHandle<JSPropertyDescriptor> argument. I've no idea why they think that's useful, but that's what they're doing. In any case, it's a total artifact, so I've just cut that case out of the static assert and added a runtime assert to cover the hole. Let's see if that helps:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=fd71fc94f2c8
Attachment #8632294 -
Attachment is obsolete: true
Attachment #8633664 -
Flags: review?(jimb)
Assignee | ||
Updated•9 years ago
|
Attachment #8632296 -
Flags: review?(jimb)
Assignee | ||
Comment 5•9 years ago
|
||
Comment on attachment 8632293 [details] [diff] [review]
1_move_persistentrooted_to_rootlists-v0.diff
Gah! Now I'm having intermittent trouble with browser shutdown because we appear to finalize contexts way before the runtime. I think the right solution here is to make the context have a RootLists* and store everything in PerThreadData. I'm going to just totally re-do this series.
Attachment #8632293 -
Flags: review?(jimb)
Assignee | ||
Updated•9 years ago
|
Attachment #8632296 -
Flags: review?(jimb)
Assignee | ||
Updated•9 years ago
|
Attachment #8633664 -
Flags: review?(jimb)
Assignee | ||
Comment 6•9 years ago
|
||
There was a ton more subtlety here than I really expected, so I've broken this down into separate bugs with smaller patches, largely orthogonal to these.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•