diff --git a/src/transactions/transaction.rs b/src/transactions/transaction.rs index 39b2b06..089e1ad 100644 --- a/src/transactions/transaction.rs +++ b/src/transactions/transaction.rs @@ -852,8 +852,8 @@ impl<'db, DB> Transaction<'db, DB> { let wi = ffi::rocksdb_transaction_get_writebatch_wi(self.inner); let mut len: usize = 0; let ptr = ffi::rocksdb_writebatch_wi_data(wi, &mut len as _); - let data = std::slice::from_raw_parts(ptr, len).to_owned(); - let writebatch = ffi::rocksdb_writebatch_create_from(data.as_ptr(), data.len()); + let writebatch = ffi::rocksdb_writebatch_create_from(ptr, len); + ffi::rocksdb_free(wi as *mut c_void); WriteBatchWithTransaction { inner: writebatch } } }