Made a change in context to the way arrays are resized. Slight change to the logic but resize_with should be slightly more efficient

This commit is contained in:
James
2024-10-15 21:24:32 +11:00
parent 865122e92f
commit 3fbd52a212
+9 -10
View File
@@ -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<FileHandle> {
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
}