diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-22 08:36:01 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-22 08:36:01 -0500 |
commit | 87d991ebd24886051ad1131bdbe3b9019cb1c4b3 (patch) | |
tree | 7a31274c6141630bd876a44972b799d6b56cb2d0 /python/tidy/servo_tidy | |
parent | a0a62ed3fdc023015fd59cf9358e0a0cc3b2bc9b (diff) | |
parent | b8853554dbe595dedf3d68532af66bbf0c329b42 (diff) | |
download | servo-87d991ebd24886051ad1131bdbe3b9019cb1c4b3.tar.gz servo-87d991ebd24886051ad1131bdbe3b9019cb1c4b3.zip |
Auto merge of #11803 - jdm:catch-unwind, r=nox
Avoid unwinding into C stack frames
Fix the biggest cause of #6462 by wrapping lots of JS->Rust transitions in catch_panic, and calling resume_panic after all Rust->JS transitions return.
Known issue:
* Finalizers can be called in response to any JS engine allocation that triggers a GC, so it's possible for a Rust object's Drop implementation that panics to leave an interrupted panic in TLS. This is why 30d8009 is part of this PR; the underlying problem is that there's no clear place to resume the panic after it is interrupted.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #6462 (github issue number if applicable).
- [X] There are tests for these changes OR
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11803)
<!-- Reviewable:end -->
Diffstat (limited to 'python/tidy/servo_tidy')
0 files changed, 0 insertions, 0 deletions