From 1d5586780b7144b3e1fa17b827f461b10f076be4 Mon Sep 17 00:00:00 2001 From: Simon Pichugin Date: Mon, 24 Jul 2023 15:42:11 -0700 Subject: [PATCH] fix using borrow() on a double reference Reference: https://github.com/389ds/389-ds-base/pull/5854 error: using `.borrow()` on a double reference, which returns `&concread::cowcell::CowCellReadTxn` instead of borrowing the inner type We're getting the error about borrowing a double reference because we're trying to borrow a type that is already a reference. Fix - use the type directly. --- src/librslapd/src/cache.rs | 4 +--- src/slapi_r_plugin/src/value.rs | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/librslapd/src/cache.rs b/src/librslapd/src/cache.rs index 092c81d..b025c83 100644 --- a/src/librslapd/src/cache.rs +++ b/src/librslapd/src/cache.rs @@ -1,6 +1,5 @@ // This exposes C-FFI capable bindings for the concread concurrently readable cache. use concread::arcache::{ARCache, ARCacheBuilder, ARCacheReadTxn, ARCacheWriteTxn}; -use std::borrow::Borrow; use std::convert::TryInto; use std::ffi::{CStr, CString}; use std::os::raw::c_char; @@ -56,8 +55,7 @@ pub extern "C" fn cache_char_stats( debug_assert!(!cache.is_null()); &(*cache) as &ARCacheChar }; - let stat_rguard = cache_ref.inner.view_stats(); - let stats = stat_rguard.borrow(); + let stats = cache_ref.inner.view_stats(); *reader_hits = stats.reader_hits.try_into().unwrap(); *reader_includes = stats.reader_includes.try_into().unwrap(); *write_hits = stats.write_hits.try_into().unwrap(); diff --git a/src/slapi_r_plugin/src/value.rs b/src/slapi_r_plugin/src/value.rs index cd56529..2fd35c8 100644 --- a/src/slapi_r_plugin/src/value.rs +++ b/src/slapi_r_plugin/src/value.rs @@ -182,7 +182,7 @@ impl From<&Uuid> for Value { let s_ptr = cstr.as_ptr(); Box::leak(cstr); - let mut v = unsafe { slapi_value_new() }; + let v = unsafe { slapi_value_new() }; unsafe { (*v).bv.len = len; (*v).bv.data = s_ptr as *const u8; -- 2.27.0