Closed Bug 1030938 Opened 6 years ago Closed 6 years ago

Stop copy-constructing frame iterators in SavedStacks, and some other cleanup

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla33

People

(Reporter: bzbarsky, Assigned: bzbarsky)

References

Details

Attachments

(1 file)

Blocks: 857648
Comment on attachment 8446729 [details] [diff] [review]
Stop copy-constructing iterators in SavedStacks code, because that copy constructor is really slow.  Also, hash atoms as pointers, not strings

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

::: js/src/vm/SavedStacks.cpp
@@ +101,5 @@
>      if (source != lookup.source)
>          return false;
>  
>      JSAtom *functionDisplayName = existing->getFunctionDisplayName();
> +    if (functionDisplayName != lookup.functionDisplayName)

Oh nice.

@@ +477,5 @@
>      // in js/src/jit-test/tests/saved-stacks/bug-1006876-too-much-recursion.js).
>      JS_CHECK_RECURSION_DONT_REPORT(cx, return false);
>  
> +    RootedScript script(cx, iter.script());
> +    jsbytecode* pc = iter.pc();

Style nit: I think SM style does jsbytecode *pc

@@ +480,5 @@
> +    RootedScript script(cx, iter.script());
> +    jsbytecode* pc = iter.pc();
> +    RootedFunction callee(cx, iter.maybeCallee());
> +    // script and callee should keep compartment alive.
> +    JSCompartment* compartment = iter.compartment();

Ditto.
Attachment #8446729 - Flags: review?(shu) → review+
Flags: in-testsuite?
Target Milestone: --- → mozilla33
https://hg.mozilla.org/mozilla-central/rev/937b2131d8e2
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.