From 794b84c4041e2255acb69691d9916cc8cc7685f3 Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Mon, 22 Nov 2021 23:01:40 +0100 Subject: [PATCH] whoops --- src/database/abstraction/sqlite.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/database/abstraction/sqlite.rs b/src/database/abstraction/sqlite.rs index 6717013..06a8673 100644 --- a/src/database/abstraction/sqlite.rs +++ b/src/database/abstraction/sqlite.rs @@ -114,16 +114,16 @@ impl DatabaseEngine for Engine { fn create_new(engine: &Arc, name: &str) -> Result { engine.write_lock().execute(&format!("CREATE TABLE IF NOT EXISTS {} ( \"key\" BLOB PRIMARY KEY, \"value\" BLOB NOT NULL )", name), [])?; - SqliteTable { + Ok(SqliteTable { engine: Arc::clone(engine), name: name.to_owned(), watchers: RwLock::new(HashMap::new()), - } + }) } // Table mappings are `Weak` to prevent reference cycles, that creates this additional correctness logic. Ok(match self.tables.write().entry(name.to_string()) { - hash_map::Entry::Occupied(o) => { + hash_map::Entry::Occupied(mut o) => { if let Some(table) = o.get().upgrade() { table } else { @@ -131,7 +131,7 @@ impl DatabaseEngine for Engine { let table = Arc::new(create_new(self, name)?); - o.insert(table.downgrade()); + o.insert(Arc::downgrade(&table)); table } @@ -139,7 +139,7 @@ impl DatabaseEngine for Engine { hash_map::Entry::Vacant(v) => { let table = Arc::new(create_new(self, name)?); - v.insert(table.downgrade()); + v.insert(Arc::downgrade(&table)); table }