Opt-in rather than opt-out to unsafe blocks in layout.

This commit is contained in:
Ms2ger 2015-02-08 20:03:17 +01:00
parent a819b0b1b6
commit 7c6b03abfe
12 changed files with 22 additions and 0 deletions

View file

@ -4,6 +4,8 @@
//! Data needed by the layout task.
#![allow(unsafe_blocks)]
use css::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
use geom::{Rect, Size2D};

View file

@ -4,6 +4,8 @@
//! High-level interface to CSS selector matching.
#![allow(unsafe_blocks)]
use css::node_style::StyledNode;
use incremental::{self, RestyleDamage};
use util::{LayoutDataAccess, LayoutDataWrapper};

View file

@ -23,6 +23,7 @@ pub trait StyledNode {
impl<'ln> StyledNode for ThreadSafeLayoutNode<'ln> {
#[inline]
#[allow(unsafe_blocks)]
fn style<'a>(&'a self) -> &'a Arc<ComputedValues> {
unsafe {
let layout_data_ref = self.borrow_layout_data();

View file

@ -294,6 +294,7 @@ pub trait Flow: fmt::Show + Sync {
}
/// Returns a layer ID for the given fragment.
#[allow(unsafe_blocks)]
fn layer_id(&self, fragment_id: uint) -> LayerId {
unsafe {
let obj = mem::transmute::<&&Self, &raw::TraitObject>(&self);
@ -310,6 +311,7 @@ pub trait Flow: fmt::Show + Sync {
// Base access
#[inline(always)]
#[allow(unsafe_blocks)]
pub fn base<'a, T: ?Sized + Flow>(this: &'a T) -> &'a BaseFlow {
unsafe {
let obj = mem::transmute::<&&'a T, &'a raw::TraitObject>(&this);
@ -323,6 +325,7 @@ pub fn imm_child_iter<'a>(flow: &'a Flow) -> FlowListIterator<'a> {
}
#[inline(always)]
#[allow(unsafe_blocks)]
pub fn mut_base<'a, T: ?Sized + Flow>(this: &'a mut T) -> &'a mut BaseFlow {
unsafe {
let obj = mem::transmute::<&&'a mut T, &'a raw::TraitObject>(&this);

View file

@ -6,6 +6,8 @@
//!
//! Eventually, with dynamically sized types in Rust, much of this code will be superfluous.
#![allow(unsafe_blocks)]
use flow::Flow;
use flow;

View file

@ -95,6 +95,7 @@ impl Drop for Scope {
/// Generate a unique ID. This is used for items such as Fragment
/// which are often reallocated but represent essentially the
/// same data.
#[allow(unsafe_blocks)]
pub fn generate_unique_debug_id() -> u16 {
unsafe { DEBUG_ID_COUNTER.fetch_add(1, Ordering::SeqCst) as u16 }
}

View file

@ -5,6 +5,8 @@
//! The layout task. Performs layout on the DOM, builds display lists and sends them to be
//! painted.
#![allow(unsafe_blocks)]
use css::node_style::StyledNode;
use construct::ConstructionResult;
use context::{SharedLayoutContext, SharedLayoutContextWrapper};

View file

@ -4,6 +4,7 @@
#![feature(thread_local, unsafe_destructor, box_syntax, plugin, int_uint)]
#![deny(unsafe_blocks)]
#![deny(unused_imports)]
#![deny(unused_variables)]
#![allow(unrooted_must_root)]

View file

@ -6,6 +6,8 @@
//!
//! This code is highly unsafe. Keep this file small and easy to audit.
#![allow(unsafe_blocks)]
use context::{LayoutContext, SharedLayoutContextWrapper, SharedLayoutContext};
use flow::{Flow, MutableFlowUtils, PreorderFlowTraversal, PostorderFlowTraversal};
use flow;

View file

@ -4,6 +4,8 @@
//! Traversals over the DOM and flow trees, running the layout computations.
#![allow(unsafe_blocks)]
use css::node_style::StyledNode;
use css::matching::{ApplicableDeclarations, MatchMethods, StyleSharingResult};
use construct::FlowConstructor;

View file

@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#![allow(unsafe_blocks)]
use construct::ConstructionResult;
use incremental::RestyleDamage;
use parallel::DomParallelInfo;

View file

@ -30,6 +30,8 @@
//! o Instead of `html_element_in_html_document()`, use
//! `html_element_in_html_document_for_layout()`.
#![allow(unsafe_blocks)]
use canvas::canvas_paint_task::CanvasMsg;
use context::SharedLayoutContext;
use css::node_style::StyledNode;