Closed Bug 841558 Opened 11 years ago Closed 11 years ago

GC: Don't exactly mark through tagged protos and other tagged things

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla22

People

(Reporter: terrence, Assigned: terrence)

References

Details

Attachments

(1 file)

Attached patch v0Splinter Review
I hit this when working on GGC. This is the same test we have in place on the object pre-barrier and for the same reason: NULL tagged pointers.
Attachment #714115 - Flags: review?(sphink)
Comment on attachment 714115 [details] [diff] [review]
v0

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

::: js/src/gc/RootMarking.cpp
@@ +45,5 @@
>  static inline void
>  MarkExactStackRoot(JSTracer *trc, Rooted<void*> *rooter, ThingRootKind kind)
>  {
>      void **addr = (void **)rooter->address();
> +    if (uintptr_t(*addr) < 32)

Ugh. No problem with the implementation, but could this check and the ones for barriers in ObjectImpl-inl.h be put into a meaningfully-named macro? It's both cryptic and yet not worth a full comment at the same time. Hopefully there's something shorter than IS_NULL_POSSIBLY_TAGGED_POINTER(p).
Attachment #714115 - Flags: review?(sphink) → review+
https://hg.mozilla.org/mozilla-central/rev/4ba0c687f0b4
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: