@@ -1,6 +1,5 @@
1use crate::Listener;
1use crate::Listener;
2use bumpalo::Bump;
2use bumpalo::Bump;
4use fxhash::FxHashMap;
3use fxhash::FxHashMap;
5use std::fmt;
4use std::fmt;
6use std::sync::Once;
5use std::sync::Once;
@@ -42,7 +41,7 @@ struct StringsCacheEntry {
42pub(crate) struct ChangeList {
41pub(crate) struct ChangeList {
43 bump: Bump,
42 bump: Bump,
44 strings_cache: FxHashMap<String, StringsCacheEntry>,
43 strings_cache: FxHashMap<String, StringsCacheEntry>,
45− next_string_key: Cell<u32>,
44+ next_string_key: u32,
46 js: js::ChangeList,
45 js: js::ChangeList,
47 events_trampoline: Option<Closure<Fn(web_sys::Event, u32, u32)>>,
46 events_trampoline: Option<Closure<Fn(web_sys::Event, u32, u32)>>,
@@ -83,7 +82,7 @@ impl ChangeList {
83 ChangeList {
82 ChangeList {
85 strings_cache,
84 strings_cache,
86− next_string_key: Cell::new(0),
85+ next_string_key: 0,
88 events_trampoline: None,
87 events_trampoline: None,
@@ -299,14 +298,12 @@ impl ChangeList {
300impl ChangeList {
299impl ChangeList {
301 fn ensure_string(&mut self, string: &str) -> u32 {
300 fn ensure_string(&mut self, string: &str) -> u32 {
302− let entry = self.strings_cache.get_mut(string);
301+ if let Some(entry) = self.strings_cache.get_mut(string) {
303− if entry.is_some() {
304− let entry = entry.unwrap();
305 entry.used = true;
302 entry.used = true;
306 entry.key
303 entry.key
308− let key = self.next_string_key.get();
305+ let key = self.next_string_key;
309− self.next_string_key.set(key + 1);
306+ self.next_string_key += 1;
310 let entry = StringsCacheEntry { key, used: true };
307 let entry = StringsCacheEntry { key, used: true };
311 self.strings_cache.insert(string.to_string(), entry);
308 self.strings_cache.insert(string.to_string(), entry);
312 self.op3(
309 self.op3(