diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-01-26 08:26:49 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-26 08:26:49 -0600 |
commit | c0d9f28b044ce377fc421475a943555c8ca6f123 (patch) | |
tree | 0848ac87c084caeb70f053af3b9df2cf807db8b3 /components | |
parent | 4f17235a8e5c4e074415d60c1cea6e89d076d6d8 (diff) | |
parent | 31a14082eb999a3bc56f6e59e892709a281514e3 (diff) | |
download | servo-c0d9f28b044ce377fc421475a943555c8ca6f123.tar.gz servo-c0d9f28b044ce377fc421475a943555c8ca6f123.zip |
Auto merge of #19872 - nox:domrefcell-tracing, r=jdm
Make JSTraceable for DomRefCell<T> panic if cell is mutably borrowed
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19872)
<!-- Reviewable:end -->
Diffstat (limited to 'components')
-rw-r--r-- | components/script/dom/bindings/cell.rs | 12 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 2 |
2 files changed, 1 insertions, 13 deletions
diff --git a/components/script/dom/bindings/cell.rs b/components/script/dom/bindings/cell.rs index c5a76bb4ee2..c40885866b5 100644 --- a/components/script/dom/bindings/cell.rs +++ b/components/script/dom/bindings/cell.rs @@ -29,18 +29,6 @@ impl<T> DomRefCell<T> { &*self.value.as_ptr() } - /// Borrow the contents for the purpose of GC tracing. - /// - /// This succeeds even if the object is mutably borrowed, - /// so you have to be careful in trace code! - #[allow(unsafe_code)] - pub unsafe fn borrow_for_gc_trace(&self) -> &T { - // FIXME: IN_GC isn't reliable enough - doesn't catch minor GCs - // https://github.com/servo/servo/issues/6389 - // debug_assert!(thread_state::get().contains(SCRIPT | IN_GC)); - &*self.value.as_ptr() - } - /// Borrow the contents for the purpose of script deallocation. /// #[allow(unsafe_code)] diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 3d006d4a6ca..97d9f062688 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -206,7 +206,7 @@ unsafe impl<T: JSTraceable> JSTraceable for UnsafeCell<T> { unsafe impl<T: JSTraceable> JSTraceable for DomRefCell<T> { unsafe fn trace(&self, trc: *mut JSTracer) { - (*self).borrow_for_gc_trace().trace(trc) + (*self).borrow().trace(trc) } } |