aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-01-26 08:26:49 -0600
committerGitHub <noreply@github.com>2018-01-26 08:26:49 -0600
commitc0d9f28b044ce377fc421475a943555c8ca6f123 (patch)
tree0848ac87c084caeb70f053af3b9df2cf807db8b3 /components
parent4f17235a8e5c4e074415d60c1cea6e89d076d6d8 (diff)
parent31a14082eb999a3bc56f6e59e892709a281514e3 (diff)
downloadservo-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.rs12
-rw-r--r--components/script/dom/bindings/trace.rs2
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)
}
}