Make use of RefCell::try_borrow_unguarded

This commit is contained in:
Anthony Ramine 2019-04-12 13:49:41 +02:00
parent a74f5222db
commit 44163148c2
7 changed files with 11 additions and 8 deletions

View file

@ -2030,6 +2030,10 @@ where
None None
}; };
// https://github.com/rust-lang/rust/issues/59159
let browsing_context_size = browsing_context.size;
let browsing_context_is_visible = browsing_context.is_visible;
// Create the new pipeline, attached to the parent and push to pending changes // Create the new pipeline, attached to the parent and push to pending changes
self.new_pipeline( self.new_pipeline(
new_pipeline_id, new_pipeline_id,
@ -2037,11 +2041,11 @@ where
top_level_browsing_context_id, top_level_browsing_context_id,
Some(parent_pipeline_id), Some(parent_pipeline_id),
None, None,
browsing_context.size, browsing_context_size,
load_data, load_data,
load_info.sandbox, load_info.sandbox,
is_private, is_private,
browsing_context.is_visible, browsing_context_is_visible,
); );
self.add_pending_change(SessionHistoryChange { self.add_pending_change(SessionHistoryChange {
top_level_browsing_context_id: top_level_browsing_context_id, top_level_browsing_context_id: top_level_browsing_context_id,

View file

@ -26,7 +26,9 @@ impl<T> DomRefCell<T> {
#[allow(unsafe_code)] #[allow(unsafe_code)]
pub unsafe fn borrow_for_layout(&self) -> &T { pub unsafe fn borrow_for_layout(&self) -> &T {
debug_assert!(thread_state::get().is_layout()); debug_assert!(thread_state::get().is_layout());
&*self.value.as_ptr() self.value
.try_borrow_unguarded()
.expect("cell is mutably borrowed")
} }
/// Borrow the contents for the purpose of script deallocation. /// Borrow the contents for the purpose of script deallocation.

View file

@ -1442,8 +1442,6 @@ impl XMLHttpRequest {
fn filter_response_headers(&self) -> HeaderMap { fn filter_response_headers(&self) -> HeaderMap {
// https://fetch.spec.whatwg.org/#concept-response-header-list // https://fetch.spec.whatwg.org/#concept-response-header-list
use http::header::{self, HeaderName};
let mut headers = self.response_headers.borrow().clone(); let mut headers = self.response_headers.borrow().clone();
headers.remove(header::SET_COOKIE); headers.remove(header::SET_COOKIE);
headers.remove(HeaderName::from_static("set-cookie2")); headers.remove(HeaderName::from_static("set-cookie2"));

View file

@ -4,6 +4,7 @@
#![cfg_attr(feature = "unstable", feature(core_intrinsics))] #![cfg_attr(feature = "unstable", feature(core_intrinsics))]
#![cfg_attr(feature = "unstable", feature(on_unimplemented))] #![cfg_attr(feature = "unstable", feature(on_unimplemented))]
#![feature(borrow_state)]
#![feature(const_fn)] #![feature(const_fn)]
#![feature(drain_filter)] #![feature(drain_filter)]
#![feature(inner_deref)] #![feature(inner_deref)]

View file

@ -245,7 +245,6 @@ impl ParseErrorReporter for RustLogReporter {
location: SourceLocation, location: SourceLocation,
error: ContextualParseError, error: ContextualParseError,
) { ) {
use log;
if log_enabled!(log::Level::Info) { if log_enabled!(log::Level::Info) {
info!( info!(
"Url:\t{}\n{}:{} {}", "Url:\t{}\n{}:{} {}",

View file

@ -354,7 +354,6 @@ impl NonTSPseudoClass {
/// selector matching, and it's set from the DOM. /// selector matching, and it's set from the DOM.
pub fn state_flag(&self) -> ElementState { pub fn state_flag(&self) -> ElementState {
use self::NonTSPseudoClass::*; use self::NonTSPseudoClass::*;
use crate::element_state::ElementState;
match *self { match *self {
Active => ElementState::IN_ACTIVE_STATE, Active => ElementState::IN_ACTIVE_STATE,
Focus => ElementState::IN_FOCUS_STATE, Focus => ElementState::IN_FOCUS_STATE,

View file

@ -1 +1 @@
nightly-2019-03-26 nightly-2019-04-12