Просмотр исходного кода

Avoid allocation when checking for windows drive letters.

Jeremy Lempereur 6 лет назад
Родитель
Сommit
925ec94a6d
1 измененных файлов с 4 добавлено и 11 удалено
  1. 4 11
      src/parser.rs

+ 4 - 11
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);