From 21032714ee520165e2c091160be529ecb80762fc Mon Sep 17 00:00:00 2001 From: Jeremy Lempereur Date: Sun, 10 Nov 2019 16:41:37 +0100 Subject: [PATCH] Avoid allocation when checking for windows drive letters. --- src/parser.rs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/parser.rs b/src/parser.rs index 54369adf8..00458365a 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1314,18 +1314,11 @@ impl<'a> Parser<'a> { if self.serialization.len() == path_start { return; } + // If url’s scheme is "file", path’s size is 1, and path[0] is a normalized Windows drive letter, then return. + if scheme_type.is_file() + && is_normalized_windows_drive_letter(&self.serialization[path_start..]) { - // If url’s scheme is "file", path’s size is 1, and path[0] is a normalized Windows drive letter, then return. - let segments: Vec<&str> = self.serialization[path_start..] - .split('/') - .filter(|s| !s.is_empty()) - .collect(); - if scheme_type.is_file() - && segments.len() == 1 - && is_normalized_windows_drive_letter(segments[0]) - { - return; - } + return; } // Remove path’s last item. self.pop_path(scheme_type, path_start);