mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
style: Use cbindgen to back CSS transforms.
This avoids the expensive conversion, and cleans up a bunch. Further cleanup is possible, just not done yet to avoid growing the patch even more. Differential Revision: https://phabricator.services.mozilla.com/D30748
This commit is contained in:
parent
85752fa479
commit
3034d66eef
11 changed files with 59 additions and 356 deletions
|
@ -276,29 +276,6 @@ impl nsCSSValue {
|
|||
}
|
||||
debug_assert!(values.next().is_none(), "Values should have been exhausted");
|
||||
}
|
||||
|
||||
/// Set a shared list
|
||||
pub fn set_shared_list<I>(&mut self, values: I)
|
||||
where
|
||||
I: ExactSizeIterator<Item = nsCSSValue>,
|
||||
{
|
||||
debug_assert!(values.len() > 0, "Empty list is not supported");
|
||||
unsafe { bindings::Gecko_CSSValue_InitSharedList(self, values.len() as u32) };
|
||||
debug_assert_eq!(self.mUnit, nsCSSUnit::eCSSUnit_SharedList);
|
||||
let list = unsafe {
|
||||
self.mValue
|
||||
.mSharedList
|
||||
.as_ref()
|
||||
.as_mut()
|
||||
.expect("List pointer should be non-null")
|
||||
.mHead
|
||||
.as_mut()
|
||||
};
|
||||
debug_assert!(list.is_some(), "New created shared list shouldn't be null");
|
||||
for (item, new_value) in list.unwrap().into_iter().zip(values) {
|
||||
*item = new_value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for nsCSSValue {
|
||||
|
|
|
@ -289,11 +289,6 @@ impl_threadsafe_refcount!(
|
|||
bindings::Gecko_AddRefURLExtraDataArbitraryThread,
|
||||
bindings::Gecko_ReleaseURLExtraDataArbitraryThread
|
||||
);
|
||||
impl_threadsafe_refcount!(
|
||||
structs::nsCSSValueSharedList,
|
||||
bindings::Gecko_AddRefCSSValueSharedListArbitraryThread,
|
||||
bindings::Gecko_ReleaseCSSValueSharedListArbitraryThread
|
||||
);
|
||||
impl_threadsafe_refcount!(
|
||||
structs::mozilla::css::URLValue,
|
||||
bindings::Gecko_AddRefCSSURLValueArbitraryThread,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue