diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index ef33f1ea328..1712e3b53e9 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -17,7 +17,6 @@ use std::borrow::Cow; use std::cmp; use std::env; use std::fmt::Write; -use std::mem; use std::ptr; use std::sync::{Arc, Mutex}; use style::arc_ptr_eq; @@ -395,12 +394,10 @@ pub extern "C" fn Servo_StyleSheet_Empty(mode: SheetParsingMode) -> RawServoStyl SheetParsingMode::eUserSheetFeatures => Origin::User, SheetParsingMode::eAgentSheetFeatures => Origin::UserAgent, }; - let sheet = Arc::new(Stylesheet::from_str( + Arc::new(Stylesheet::from_str( "", url, origin, Default::default(), None, - Box::new(StdoutErrorReporter), extra_data)); - unsafe { - mem::transmute(sheet) - } + Box::new(StdoutErrorReporter), extra_data) + ).into_strong() } #[no_mangle] @@ -440,12 +437,10 @@ pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes(loader: *mut Loader, Some(ref s) => Some(s), }; - let sheet = Arc::new(Stylesheet::from_str( + Arc::new(Stylesheet::from_str( input, url, origin, Default::default(), loader, - Box::new(StdoutErrorReporter), extra_data)); - unsafe { - mem::transmute(sheet) - } + Box::new(StdoutErrorReporter), extra_data) + ).into_strong() } #[no_mangle] @@ -1304,7 +1299,7 @@ pub extern "C" fn Servo_ImportRule_GetSheet(import_rule: RawServoImportRuleBorrowed) -> RawServoStyleSheetStrong { let import_rule = RwLock::::as_arc(&import_rule); - unsafe { mem::transmute(import_rule.read().stylesheet.clone()) } + import_rule.read().stylesheet.clone().into_strong() } #[no_mangle]