From 3fbd52a21254ffd49dbe7bb88dd58f15783f0902 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 15 Oct 2024 21:24:32 +1100 Subject: [PATCH] Made a change in context to the way arrays are resized. Slight change to the logic but resize_with should be slightly more efficient --- src/context/context.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/context/context.rs b/src/context/context.rs index 2e54bee1d7..7dabe30668 100644 --- a/src/context/context.rs +++ b/src/context/context.rs @@ -330,16 +330,15 @@ impl Context { /// Return the file descriptor number or None if the slot was not empty, or i was invalid pub fn insert_file(&self, i: FileHandle, file: FileDescriptor) -> Option { let mut files = self.files.write(); - if i.get() < super::CONTEXT_MAX_FILES { - while i.get() >= files.len() { - files.push(None); - } - if files[i.get()].is_none() { - files[i.get()] = Some(file); - Some(i) - } else { - None - } + if i.get() >= super::CONTEXT_MAX_FILES { + return None; + } + if i.get() >= files.len() { + files.resize_with(i.get() + 1, || None); + } + if files[i.get()].is_none() { + files[i.get()] = Some(file); + Some(i) } else { None }