Provide safety check helpers in release builds

debug_assert! uses

    if cfg!(not(ndebug)) { ... }

so the body in a release build is dead code, but it still needs to compile.
This commit is contained in:
Keegan McAllister 2014-10-24 16:45:09 -07:00
parent 4dee8ecdf0
commit f508a82582
2 changed files with 4 additions and 8 deletions

View file

@ -46,7 +46,6 @@ impl<T> DOMRefCell<T> {
/// Is the cell mutably borrowed? /// Is the cell mutably borrowed?
/// ///
/// For safety checks in debug builds only. /// For safety checks in debug builds only.
#[cfg(not(ndebug))]
pub fn is_mutably_borrowed(&self) -> bool { pub fn is_mutably_borrowed(&self) -> bool {
self.borrow.get() == WRITING self.borrow.get() == WRITING
} }

View file

@ -5,14 +5,10 @@
//! Supports dynamic assertions in debug builds about what sort of task is //! Supports dynamic assertions in debug builds about what sort of task is
//! running and what state it's in. //! running and what state it's in.
//! //!
//! In release builds, `get` is not available; calls must be inside //! In release builds, `get` returns 0. All of the other functions inline
//! `debug_assert!` or similar. All of the other functions inline away to //! away to nothing.
//! nothing.
pub use self::imp::{initialize, enter, exit}; pub use self::imp::{initialize, get, enter, exit};
#[cfg(not(ndebug))]
pub use self::imp::get;
bitflags! { bitflags! {
#[deriving(Show)] #[deriving(Show)]
@ -89,6 +85,7 @@ mod imp {
mod imp { mod imp {
use super::TaskState; use super::TaskState;
#[inline(always)] pub fn initialize(_: TaskState) { } #[inline(always)] pub fn initialize(_: TaskState) { }
#[inline(always)] pub fn get() -> TaskState { TaskState::empty() }
#[inline(always)] pub fn enter(_: TaskState) { } #[inline(always)] pub fn enter(_: TaskState) { }
#[inline(always)] pub fn exit(_: TaskState) { } #[inline(always)] pub fn exit(_: TaskState) { }
} }