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)

defect
Not set
normal

Tracking

()

RESOLVED INVALID
Tracking Status
firefox42 --- affected

People

(Reporter: terrence, Assigned: terrence)

References

(Blocks 1 open bug)

Details

Attachments

(3 files, 1 obsolete file)

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)
Attached patch 2_coalesce_persistentrooted-v0.diff (obsolete) (deleted) — Splinter Review
Use FOR_EACH_GC_LAYOUT to reduce the code volume.
Attachment #8632294 - Flags: review?(jimb)
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)
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)
Attachment #8632296 - Flags: review?(jimb)
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)
Attachment #8632296 - Flags: review?(jimb)
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)
Attachment #8632296 - Flags: review?(jimb)
Attachment #8633664 - Flags: review?(jimb)
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.

Attachment

General

Created:
Updated:
Size: