diff --git a/ports/cef/string_map.rs b/ports/cef/string_map.rs index ed3ca226060..fe5c7d24cec 100644 --- a/ports/cef/string_map.rs +++ b/ports/cef/string_map.rs @@ -12,6 +12,10 @@ use std::string::String; use string::{cef_string_userfree_utf8_alloc,cef_string_userfree_utf8_free,cef_string_utf8_set}; use types::{cef_string_map_t,cef_string_t}; +fn string_map_to_treemap(sm: *mut cef_string_map_t) -> *mut TreeMap { + sm as *mut TreeMap +} + //cef_string_map #[no_mangle] @@ -21,3 +25,12 @@ pub extern "C" fn cef_string_map_alloc() -> *mut cef_string_map_t { mem::transmute(sm) } } + +#[no_mangle] +pub extern "C" fn cef_string_map_size(sm: *mut cef_string_map_t) -> c_int { + unsafe { + if fptr_is_null(mem::transmute(sm)) { return 0; } + let v = string_map_to_treemap(sm); + (*v).len() as c_int + } +}