diff --git a/components/config/pref_util.rs b/components/config/pref_util.rs index 07b623372f8..75b83efae88 100644 --- a/components/config/pref_util.rs +++ b/components/config/pref_util.rs @@ -6,7 +6,7 @@ use serde_json::Value; use std::collections::HashMap; use std::fmt; use std::str::FromStr; -use std::sync::{Arc, RwLock}; +use std::sync::RwLock; #[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] pub enum PrefValue { @@ -184,7 +184,7 @@ impl Accessor { } pub struct Preferences<'m, P> { - user_prefs: Arc>, + user_prefs: RwLock

, default_prefs: P, accessors: &'m HashMap>, } @@ -194,15 +194,15 @@ impl<'m, P: Clone> Preferences<'m, P> { /// can always be restored using `reset` or `reset_all`. pub fn new(default_prefs: P, accessors: &'m HashMap>) -> Self { Self { - user_prefs: Arc::new(RwLock::new(default_prefs.clone())), + user_prefs: RwLock::new(default_prefs.clone()), default_prefs, accessors, } } /// Access to the data structure holding the preference values. - pub fn values(&self) -> Arc> { - Arc::clone(&self.user_prefs) + pub fn values(&self) -> &RwLock

{ + &self.user_prefs } /// Retrieve a preference using its key