diff --git a/ports/cef/string_map.rs b/ports/cef/string_map.rs index b7fd8dffcc3..7e34ca23b1e 100644 --- a/ports/cef/string_map.rs +++ b/ports/cef/string_map.rs @@ -4,8 +4,8 @@ use eutil::slice_to_str; use libc::{c_int}; +use std::boxed; use std::collections::BTreeMap; -use std::mem; use std::string::String; use string::{cef_string_userfree_utf16_alloc, cef_string_userfree_utf16_free}; use string::{cef_string_utf16_set}; @@ -19,10 +19,7 @@ fn string_map_to_treemap(sm: *mut cef_string_map_t) -> *mut BTreeMap *mut cef_string_map_t { - unsafe { - let sm: Box> = box BTreeMap::new(); - mem::transmute(sm) - } + boxed::into_raw(box BTreeMap::new()) } #[no_mangle] @@ -118,7 +115,7 @@ pub extern "C" fn cef_string_map_clear(sm: *mut cef_string_map_t) { pub extern "C" fn cef_string_map_free(sm: *mut cef_string_map_t) { unsafe { if sm.is_null() { return; } - let _v: Box> = mem::transmute(sm); cef_string_map_clear(sm); + drop(Box::from_raw(sm)); } } diff --git a/ports/cef/types.rs b/ports/cef/types.rs index 5378d67b405..be71083f1ed 100644 --- a/ports/cef/types.rs +++ b/ports/cef/types.rs @@ -15,7 +15,7 @@ pub use self::cef_rect as cef_rect_t; use std::collections::BTreeMap; -pub enum cef_string_map_t {} +pub type cef_string_map_t = BTreeMap; pub type cef_string_multimap_t = BTreeMap>; pub type cef_string_list_t = Vec; pub enum cef_text_input_context_t {}