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?
///
/// For safety checks in debug builds only.
#[cfg(not(ndebug))]
pub fn is_mutably_borrowed(&self) -> bool {
self.borrow.get() == WRITING
}

View file

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