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:
+9
-10
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user