]> git.lizzy.rs Git - rust.git/commit
core: Remove an implicit panic from Formatter::pad
authorAlex Crichton <alex@alexcrichton.com>
Fri, 6 Apr 2018 21:20:22 +0000 (14:20 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Fri, 13 Apr 2018 14:04:24 +0000 (07:04 -0700)
commit2bb5b5c07c5cd015c567ce86eae07e92db07bb8a
treef3e7610018b5e4b9085c42d62fe374b175f4e878
parent66c5e3ffb2b7a0804ceb989b9dc9138a7758bfd6
core: Remove an implicit panic from Formatter::pad

The expression `&s[..i]` in general can panic if `i` is out of bounds or not on
a character boundary for a string, and this caused the codegen for
`Formatter::pad` to be a bit larger than it otherwise needed to be. This commit
replaces this with `s.get(..i).unwrap_or(&s)` which while having different
behavior if `i` is out of bounds has a much smaller code footprint and otherwise
avoids the need for `unsafe` code.
src/libcore/fmt/mod.rs