summaryrefslogtreecommitdiffstats
path: root/ffi/src/store.rs
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2019-01-09 12:20:16 +0100
committerJustus Winter <justus@sequoia-pgp.org>2019-01-09 12:48:12 +0100
commit0c74b569198fe6283ddb9a18e329f8112d1d5c7f (patch)
tree0ac496169401b6398980a44bd9f7e8a34fe59936 /ffi/src/store.rs
parent2cad45090267d6936d1f107720058b7a761f8f00 (diff)
ffi: Introduce macro for moving ownership from C.
Diffstat (limited to 'ffi/src/store.rs')
-rw-r--r--ffi/src/store.rs14
1 files changed, 3 insertions, 11 deletions
diff --git a/ffi/src/store.rs b/ffi/src/store.rs
index c7a8944d..31e05376 100644
--- a/ffi/src/store.rs
+++ b/ffi/src/store.rs
@@ -302,10 +302,7 @@ pub extern "system" fn sq_store_delete(ctx: Option<&mut Context>,
store: *mut Store)
-> Status {
let ctx = ffi_param_ref!(ctx);
- assert!(! store.is_null());
- let store = unsafe {
- Box::from_raw(store)
- };
+ let store = ffi_param_move!(store);
fry_status!(ctx, store.delete())
}
@@ -383,9 +380,7 @@ pub extern "system" fn sq_key_free(key: *mut Key) {
#[no_mangle]
pub extern "system" fn sq_log_free(log: *mut Log) {
if log.is_null() { return };
- let log = unsafe {
- Box::from_raw(log)
- };
+ let log = ffi_param_move!(log);
sq_store_free(log.store);
sq_binding_free(log.binding);
sq_key_free(log.key);
@@ -490,10 +485,7 @@ pub extern "system" fn sq_binding_delete(ctx: Option<&mut Context>,
binding: *mut Binding)
-> Status {
let ctx = ffi_param_ref!(ctx);
- assert!(! binding.is_null());
- let binding = unsafe {
- Box::from_raw(binding)
- };
+ let binding = ffi_param_move!(binding);
fry_status!(ctx, binding.delete())
}