diff --git a/components/style/values/specified/svg_path.rs b/components/style/values/specified/svg_path.rs index e5282e0a164..7d40cae1fcf 100644 --- a/components/style/values/specified/svg_path.rs +++ b/components/style/values/specified/svg_path.rs @@ -625,40 +625,36 @@ impl<'a> PathParser<'a> { break; } - match self.chars.next() { - Some(command) => { - let abs = if command.is_ascii_uppercase() { - IsAbsolute::Yes - } else { - IsAbsolute::No - }; - macro_rules! parse_command { - ( $($($p:pat)|+ => $parse_func:ident,)* ) => { - match command { - $( - $($p)|+ => { - skip_wsp(&mut self.chars); - self.$parse_func(abs)?; - }, - )* - _ => return Err(()), - } - } + let command = self.chars.next().unwrap(); + let abs = if command.is_ascii_uppercase() { + IsAbsolute::Yes + } else { + IsAbsolute::No + }; + macro_rules! parse_command { + ( $($($p:pat)|+ => $parse_func:ident,)* ) => { + match command { + $( + $($p)|+ => { + skip_wsp(&mut self.chars); + self.$parse_func(abs)?; + }, + )* + _ => return Err(()), } - parse_command!( - b'Z' | b'z' => parse_closepath, - b'L' | b'l' => parse_lineto, - b'H' | b'h' => parse_h_lineto, - b'V' | b'v' => parse_v_lineto, - b'C' | b'c' => parse_curveto, - b'S' | b's' => parse_smooth_curveto, - b'Q' | b'q' => parse_quadratic_bezier_curveto, - b'T' | b't' => parse_smooth_quadratic_bezier_curveto, - b'A' | b'a' => parse_elliptical_arc, - ); - }, - _ => break, // no more commands. + } } + parse_command!( + b'Z' | b'z' => parse_closepath, + b'L' | b'l' => parse_lineto, + b'H' | b'h' => parse_h_lineto, + b'V' | b'v' => parse_v_lineto, + b'C' | b'c' => parse_curveto, + b'S' | b's' => parse_smooth_curveto, + b'Q' | b'q' => parse_quadratic_bezier_curveto, + b'T' | b't' => parse_smooth_quadratic_bezier_curveto, + b'A' | b'a' => parse_elliptical_arc, + ); } Ok(()) }