summary refs log tree commit diff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs31
1 files changed, 2 insertions, 29 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 37b54a5..a644411 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -55,24 +55,7 @@ impl App {
             let mut attrs = std::collections::HashMap::default();
             attrs.insert(crate::secrets::TOKEN_KIND, crate::secrets::ACCESS_TOKEN);
             attrs
-        }, libsecret::SearchFlags::ALL).await
-            // SAFETY: the representation of `glib::Error` is the same, since we're
-            // building against the same C library, so while this is a safety crime, it's
-            // probably a minor one.
-            //
-            // Additionally I'm ensuring the original wrapper is forgotten in case it has
-            // a drop handler that decrements a reference counter or something.
-            //
-            // This is only a workaround for libsecret not being updated in time.
-            .map_err(|e| unsafe {
-                let ptr = e.as_ptr();
-                std::mem::forget(e);
-                glib::translate::from_glib_full::<_, glib::Error>(
-                    // We can't name the original type here.
-                    #[allow(clippy::missing_transmute_annotations)]
-                    std::mem::transmute::<_, *mut glib::ffi::GError>(ptr)
-                )
-            })?;
+        }, libsecret::SearchFlags::ALL).await?;
 
         if retrievables.is_empty() {
             Ok(None)
@@ -100,17 +83,7 @@ impl App {
                 let micropub = crate::micropub::Client::new(
                     http.clone(),
                     micropub_uri,
-                    retrievable.retrieve_secret_future().await
-                        // SAFETY: see above
-                        .map_err(|e| unsafe {
-                            let ptr = e.as_ptr();
-                            std::mem::forget(e);
-                            glib::translate::from_glib_full::<_, glib::Error>(
-                                // We can't name the original type here.
-                                #[allow(clippy::missing_transmute_annotations)]
-                                std::mem::transmute::<_, *mut glib::ffi::GError>(ptr)
-                            )
-                        })?
+                    retrievable.retrieve_secret_future().await?
                         .unwrap()
                         .text()
                         .unwrap()