diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:57:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:57:31 +0000 |
commit | dc0db358abe19481e475e10c32149b53370f1a1c (patch) | |
tree | ab8ce99c4b255ce46f99ef402c27916055b899ee /vendor/gix-pack/src/cache/object.rs | |
parent | Releasing progress-linux version 1.71.1+dfsg1-2~progress7.99u1. (diff) | |
download | rustc-dc0db358abe19481e475e10c32149b53370f1a1c.tar.xz rustc-dc0db358abe19481e475e10c32149b53370f1a1c.zip |
Merging upstream version 1.72.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-pack/src/cache/object.rs')
-rw-r--r-- | vendor/gix-pack/src/cache/object.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/vendor/gix-pack/src/cache/object.rs b/vendor/gix-pack/src/cache/object.rs index e64f47a8c..26896bf89 100644 --- a/vendor/gix-pack/src/cache/object.rs +++ b/vendor/gix-pack/src/cache/object.rs @@ -1,6 +1,4 @@ -//! # Note -//! -//! This module is a bit 'misplaced' if spelled out like 'gix_pack::cache::object::*' but is best placed here for code re-use and +//! This module is a bit 'misplaced' if spelled out like '`gix_pack::cache::object::`*' but is best placed here for code re-use and //! general usefulness. use crate::cache; @@ -58,23 +56,25 @@ mod memory { /// Put the object going by `id` of `kind` with `data` into the cache. fn put(&mut self, id: gix_hash::ObjectId, kind: gix_object::Kind, data: &[u8]) { self.debug.put(); - if let Ok(Some(previous_entry)) = self.inner.put_with_weight( + let res = self.inner.put_with_weight( id, Entry { - data: self - .free_list - .pop() - .map(|mut v| { + data: self.free_list.pop().map_or_else( + || Vec::from(data), + |mut v| { v.clear(); v.resize(data.len(), 0); v.copy_from_slice(data); v - }) - .unwrap_or_else(|| Vec::from(data)), + }, + ), kind, }, - ) { - self.free_list.push(previous_entry.data) + ); + match res { + Ok(Some(previous_entry)) => self.free_list.push(previous_entry.data), + Ok(None) => {} + Err((_key, value)) => self.free_list.push(value.data), } } |