switch gecko_bindings over to the gecko_debug feature

...so that they use the correct Gecko structs regardless of whether Rust
code is being compiled with debug assertions or not.
This commit is contained in:
Nathan Froyd 2017-04-20 17:04:58 -04:00
parent 93fa0ae1e3
commit 7c6fda8ea9
7 changed files with 16 additions and 8 deletions

View file

@ -20,7 +20,7 @@ servo = ["serde/unstable", "serde", "serde_derive", "heapsize", "heapsize_derive
"cssparser/heapsize", "cssparser/serde", "encoding",
"rayon/unstable", "servo_url"]
testing = []
gecko_debug = []
gecko_debug = ["nsstring_vendor/gecko_debug"]
[dependencies]
app_units = "0.4"

View file

@ -16,7 +16,7 @@ pub mod bindings {
#[allow(dead_code, improper_ctypes, non_camel_case_types, non_snake_case, non_upper_case_globals, missing_docs)]
pub mod structs {
cfg_if! {
if #[cfg(debug_assertions)] {
if #[cfg(feature = "gecko_debug")] {
include!(concat!(env!("OUT_DIR"), "/gecko/structs_debug.rs"));
} else {
include!(concat!(env!("OUT_DIR"), "/gecko/structs_release.rs"));

View file

@ -10,3 +10,5 @@ description = "Rust bindings to xpcom string types"
[dependencies]
[features]
gecko_debug = []

View file

@ -899,12 +899,12 @@ macro_rules! ns_auto_string {
}
}
#[cfg(not(debug_assertions))]
#[cfg(not(feature = "gecko_debug"))]
#[allow(non_snake_case)]
unsafe fn Gecko_IncrementStringAdoptCount(_: *mut c_void) {}
extern "C" {
#[cfg(debug_assertions)]
#[cfg(feature = "gecko_debug")]
fn Gecko_IncrementStringAdoptCount(data: *mut c_void);
// Gecko implementation in nsSubstring.cpp

View file

@ -8,14 +8,14 @@ use gecko_bindings::structs::nsCOMPtr;
impl<T> nsCOMPtr<T> {
/// Get this pointer as a raw pointer.
#[cfg(debug_assertions)]
#[cfg(feature = "gecko_debug")]
#[inline]
pub fn raw(&self) -> *mut T {
self.mRawPtr
}
/// Get this pointer as a raw pointer.
#[cfg(not(debug_assertions))]
#[cfg(not(feature = "gecko_debug"))]
#[inline]
pub fn raw(&self) -> *mut T {
self._base.mRawPtr as *mut _