Closed Bug 1263777 Opened 8 years ago Closed 8 years ago

Use WeakCache to sweep the InitialShapeTable

Categories

(Core :: JavaScript: GC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla48
Tracking Status
firefox48 --- fixed

People

(Reporter: terrence, Assigned: terrence)

References

Details

Attachments

(1 file)

Continuing down the list.
Attachment #8740198 - Flags: review?(jcoppeard)
Comment on attachment 8740198 [details] [diff] [review]
weakcache_InitialShapeTable-v0.diff

Review of attachment 8740198 [details] [diff] [review]:
-----------------------------------------------------------------

Nice simplification.

::: js/src/vm/Shape.cpp
@@ +1462,5 @@
>                              size_t nfixed, uint32_t objectFlags)
>  {
>      MOZ_ASSERT_IF(proto.isObject(), cx->isInsideCurrentCompartment(proto.toObject()));
>  
> +    InitialShapeSet& table = cx->compartment()->initialShapes.get();

WeakCache uses MutableGCHashMapOperations so can we just use auto& here and not worry about calling get()?
Attachment #8740198 - Flags: review?(jcoppeard) → review+
Comment on attachment 8740198 [details] [diff] [review]
weakcache_InitialShapeTable-v0.diff

Review of attachment 8740198 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/jscompartment.cpp
@@ +1122,5 @@
>      objectGroups.addSizeOfExcludingThis(mallocSizeOf, tiAllocationSiteTables,
>                                          tiArrayTypeTables, tiObjectTypeTables,
>                                          compartmentTables);
>      *compartmentTables += baseShapes.get().sizeOfExcludingThis(mallocSizeOf)
> +                        + initialShapes.get().sizeOfExcludingThis(mallocSizeOf);

Fixed by passing throw the Ops.

::: js/src/vm/Shape.cpp
@@ +1462,5 @@
>                              size_t nfixed, uint32_t objectFlags)
>  {
>      MOZ_ASSERT_IF(proto.isObject(), cx->isInsideCurrentCompartment(proto.toObject()));
>  
> +    InitialShapeSet& table = cx->compartment()->initialShapes.get();

Done, and used MakeDependentAddPtr below.
s/throw/through/
https://hg.mozilla.org/mozilla-central/rev/76e8f6ad9ded
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
You need to log in before you can comment on or make changes to this bug.