aboutsummaryrefslogtreecommitdiffstats
path: root/components/servo_arc/lib.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2019-06-26 21:21:28 +0000
committerEmilio Cobos Álvarez <emilio@crisal.io>2019-07-08 12:43:19 +0200
commit248b2ac829c95294816d8792c38a3b9baeb01fe8 (patch)
treeb95f9cffd874987ea6ce43487587a0f8fb52314d /components/servo_arc/lib.rs
parent98091243a78d30403ce7b518337d46e63db933bb (diff)
downloadservo-248b2ac829c95294816d8792c38a3b9baeb01fe8.tar.gz
servo-248b2ac829c95294816d8792c38a3b9baeb01fe8.zip
style: Generate top-level function and constant declarations for the style crate.
This needs https://github.com/eqrion/cbindgen/pull/362, but I expect it to be uncontroversial. I'll add a patch to this bug when it's merged to update it. cbindgen historically didn't include these, but it turns out to be pretty useful to generate constants for the style crate (since the binding crate is `servo/ports/geckolib`). An alternative is to get a completely different cbindgen-generated header for these, but that seems a bit wasteful. This generates the constants with the Style prefix (so we'll get `StyleMAX_GRID_LINE` for example), which is very ugly. But we probably want to eventually stop using the Style prefix and use a namespace instead, plus it's trivial to do `auto kMaxLine = StyleMAX_GRID_LINE`, for example, so it's probably not a huge deal. Another alternative would be to use associated consts, which _are_ generated by cbindgen. Something like: ``` struct GridConstants([u8; 0]); impl GridConstants { const MAX_GRID_LINE: i32 = 10000; } ``` Which would yield something like: ``` static const int32 StyleGridConstants_MAX_GRID_LINE = 10000; ``` I'm not sure if you find it preferrable, but I'm also happy to change it in a follow-up to use this. We need to fix a few manual C++ function signature definitions to match the C++ declaration. Differential Revision: https://phabricator.services.mozilla.com/D35197
Diffstat (limited to 'components/servo_arc/lib.rs')
-rw-r--r--components/servo_arc/lib.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/components/servo_arc/lib.rs b/components/servo_arc/lib.rs
index aa79140e044..c2e5dd65e22 100644
--- a/components/servo_arc/lib.rs
+++ b/components/servo_arc/lib.rs
@@ -182,7 +182,7 @@ impl<T> Arc<T> {
// FIXME(emilio): Would be so amazing to have
// std::intrinsics::type_name() around, so that we could also report
// a real size.
- NS_LogCtor(ptr as *const _, b"ServoArc\0".as_ptr() as *const _, 8);
+ NS_LogCtor(ptr as *mut _, b"ServoArc\0".as_ptr() as *const _, 8);
}
unsafe {
@@ -315,7 +315,7 @@ impl<T: ?Sized> Arc<T> {
#[cfg(feature = "gecko_refcount_logging")]
unsafe {
NS_LogDtor(
- self.ptr() as *const _,
+ self.ptr() as *mut _,
b"ServoArc\0".as_ptr() as *const _,
8,
);
@@ -355,12 +355,12 @@ impl<T: ?Sized> Arc<T> {
#[cfg(feature = "gecko_refcount_logging")]
extern "C" {
fn NS_LogCtor(
- aPtr: *const std::os::raw::c_void,
+ aPtr: *mut std::os::raw::c_void,
aTypeName: *const std::os::raw::c_char,
aSize: u32,
);
fn NS_LogDtor(
- aPtr: *const std::os::raw::c_void,
+ aPtr: *mut std::os::raw::c_void,
aTypeName: *const std::os::raw::c_char,
aSize: u32,
);
@@ -762,7 +762,7 @@ impl<H, T> Arc<HeaderSlice<H, [T]>> {
if !is_static {
// FIXME(emilio): Would be so amazing to have
// std::intrinsics::type_name() around.
- NS_LogCtor(ptr as *const _, b"ServoArc\0".as_ptr() as *const _, 8)
+ NS_LogCtor(ptr as *mut _, b"ServoArc\0".as_ptr() as *const _, 8)
}
}