mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Auto merge of #14404 - BorisChiou:Bug1317179, r=Manishearth
Use XPCOM string bindings instead of Gecko_Utf8SliceToString These are the servo-side changes for [bug 1317179](https://bugzilla.mozilla.org/show_bug.cgi?id=1317179). @Manishearth has already reviewed them there. I'd like to merge these patches until the gecko-side changes for [bug 1317179](https://bugzilla.mozilla.org/show_bug.cgi?id=1317179) is landed. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix [bug 1317179](https://bugzilla.mozilla.org/show_bug.cgi?id=1317179). - [X] These changes do not require tests because there are existing tests for this in mozilla-central <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14404) <!-- Reviewable:end -->
This commit is contained in:
commit
22c8df150a
2 changed files with 3 additions and 14 deletions
|
@ -86,7 +86,6 @@ use gecko_bindings::structs::nsIPrincipal;
|
||||||
use gecko_bindings::structs::nsIURI;
|
use gecko_bindings::structs::nsIURI;
|
||||||
use gecko_bindings::structs::nsMainThreadPtrHolder;
|
use gecko_bindings::structs::nsMainThreadPtrHolder;
|
||||||
use gecko_bindings::structs::nsRestyleHint;
|
use gecko_bindings::structs::nsRestyleHint;
|
||||||
use gecko_bindings::structs::nsString;
|
|
||||||
use gecko_bindings::structs::nsStyleBackground;
|
use gecko_bindings::structs::nsStyleBackground;
|
||||||
unsafe impl Send for nsStyleBackground {}
|
unsafe impl Send for nsStyleBackground {}
|
||||||
unsafe impl Sync for nsStyleBackground {}
|
unsafe impl Sync for nsStyleBackground {}
|
||||||
|
@ -488,10 +487,6 @@ extern "C" {
|
||||||
*const ::std::os::raw::c_char,
|
*const ::std::os::raw::c_char,
|
||||||
aLength: u32) -> bool;
|
aLength: u32) -> bool;
|
||||||
}
|
}
|
||||||
extern "C" {
|
|
||||||
pub fn Gecko_Utf8SliceToString(aString: *mut nsString, aBuffer: *const u8,
|
|
||||||
aBufferLen: usize);
|
|
||||||
}
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList);
|
pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList);
|
||||||
}
|
}
|
||||||
|
@ -1095,7 +1090,7 @@ extern "C" {
|
||||||
RawServoDeclarationBlockBorrowed,
|
RawServoDeclarationBlockBorrowed,
|
||||||
property: *mut nsIAtom,
|
property: *mut nsIAtom,
|
||||||
is_custom: bool,
|
is_custom: bool,
|
||||||
buffer: *mut nsString);
|
buffer: *mut nsAString_internal);
|
||||||
}
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Servo_DeclarationBlock_Count(declarations:
|
pub fn Servo_DeclarationBlock_Count(declarations:
|
||||||
|
|
|
@ -37,14 +37,12 @@ use style::gecko_bindings::bindings::{RawServoStyleSheetStrong, ServoComputedVal
|
||||||
use style::gecko_bindings::bindings::{ServoCssRulesBorrowed, ServoCssRulesStrong};
|
use style::gecko_bindings::bindings::{ServoCssRulesBorrowed, ServoCssRulesStrong};
|
||||||
use style::gecko_bindings::bindings::{ThreadSafePrincipalHolder, ThreadSafeURIHolder};
|
use style::gecko_bindings::bindings::{ThreadSafePrincipalHolder, ThreadSafeURIHolder};
|
||||||
use style::gecko_bindings::bindings::{nsACString, nsAString};
|
use style::gecko_bindings::bindings::{nsACString, nsAString};
|
||||||
use style::gecko_bindings::bindings::Gecko_Utf8SliceToString;
|
|
||||||
use style::gecko_bindings::bindings::RawGeckoElementBorrowed;
|
use style::gecko_bindings::bindings::RawGeckoElementBorrowed;
|
||||||
use style::gecko_bindings::bindings::ServoComputedValuesBorrowedOrNull;
|
use style::gecko_bindings::bindings::ServoComputedValuesBorrowedOrNull;
|
||||||
use style::gecko_bindings::bindings::nsTArrayBorrowed_uintptr_t;
|
use style::gecko_bindings::bindings::nsTArrayBorrowed_uintptr_t;
|
||||||
use style::gecko_bindings::structs;
|
use style::gecko_bindings::structs;
|
||||||
use style::gecko_bindings::structs::{SheetParsingMode, nsIAtom};
|
use style::gecko_bindings::structs::{SheetParsingMode, nsIAtom};
|
||||||
use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint};
|
use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint};
|
||||||
use style::gecko_bindings::structs::nsString;
|
|
||||||
use style::gecko_bindings::sugar::ownership::{FFIArcHelpers, HasArcFFI, HasBoxFFI};
|
use style::gecko_bindings::sugar::ownership::{FFIArcHelpers, HasArcFFI, HasBoxFFI};
|
||||||
use style::gecko_bindings::sugar::ownership::{HasSimpleFFI, Strong};
|
use style::gecko_bindings::sugar::ownership::{HasSimpleFFI, Strong};
|
||||||
use style::gecko_bindings::sugar::refptr::{GeckoArcPrincipal, GeckoArcURI};
|
use style::gecko_bindings::sugar::refptr::{GeckoArcPrincipal, GeckoArcURI};
|
||||||
|
@ -567,7 +565,7 @@ pub extern "C" fn Servo_DeclarationBlock_GetCssText(declarations: RawServoDeclar
|
||||||
pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
||||||
declarations: RawServoDeclarationBlockBorrowed,
|
declarations: RawServoDeclarationBlockBorrowed,
|
||||||
property: *mut nsIAtom, is_custom: bool,
|
property: *mut nsIAtom, is_custom: bool,
|
||||||
buffer: *mut nsString)
|
buffer: *mut nsAString)
|
||||||
{
|
{
|
||||||
let declarations = RwLock::<PropertyDeclarationBlock>::as_arc(&declarations);
|
let declarations = RwLock::<PropertyDeclarationBlock>::as_arc(&declarations);
|
||||||
let property = get_property_name_from_atom(property, is_custom);
|
let property = get_property_name_from_atom(property, is_custom);
|
||||||
|
@ -575,11 +573,7 @@ pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
||||||
let rv = declarations.read().single_value_to_css(&property, &mut string);
|
let rv = declarations.read().single_value_to_css(&property, &mut string);
|
||||||
debug_assert!(rv.is_ok());
|
debug_assert!(rv.is_ok());
|
||||||
|
|
||||||
// FIXME: Once we have nsString bindings for Servo (bug 1294742), we should be able to drop
|
write!(unsafe { &mut *buffer }, "{}", string).expect("Failed to copy string");
|
||||||
// this and fill in |buffer| directly.
|
|
||||||
unsafe {
|
|
||||||
Gecko_Utf8SliceToString(buffer, string.as_ptr(), string.len());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue