From 7199c6ea58541d5252e9afedb4f8fc8d24223623 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 7 Nov 2014 15:40:35 -0500 Subject: [PATCH] embedding: cef_string_map_append() --- ports/cef/string_map.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ports/cef/string_map.rs b/ports/cef/string_map.rs index fe5c7d24cec..df9fcae2d88 100644 --- a/ports/cef/string_map.rs +++ b/ports/cef/string_map.rs @@ -34,3 +34,23 @@ pub extern "C" fn cef_string_map_size(sm: *mut cef_string_map_t) -> c_int { (*v).len() as c_int } } + +#[no_mangle] +pub extern "C" fn cef_string_map_append(sm: *mut cef_string_map_t, key: *const cef_string_t, value: *const cef_string_t) -> c_int { + unsafe { + if fptr_is_null(mem::transmute(sm)) { return 0; } + let v = string_map_to_treemap(sm); + slice::raw::buf_as_slice(mem::transmute((*key).str), (*key).length as uint, |result| { + match str::from_utf8(result) { + Some(k) => { + let s = String::from_str(k); + let csv = cef_string_userfree_utf8_alloc(); + cef_string_utf8_set(mem::transmute((*value).str), (*value).length, csv, 1); + (*v).insert(s, csv); + 1 + }, + None => 0 + } + }) + } +}