Avoid zero-length write_str in fmt::write
This commit is contained in:
parent
80ac15f667
commit
c7c9336469
1 changed files with 6 additions and 2 deletions
|
@ -1104,7 +1104,9 @@ pub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {
|
||||||
None => {
|
None => {
|
||||||
// We can use default formatting parameters for all arguments.
|
// We can use default formatting parameters for all arguments.
|
||||||
for (arg, piece) in iter::zip(args.args, args.pieces) {
|
for (arg, piece) in iter::zip(args.args, args.pieces) {
|
||||||
formatter.buf.write_str(*piece)?;
|
if !piece.is_empty() {
|
||||||
|
formatter.buf.write_str(*piece)?;
|
||||||
|
}
|
||||||
(arg.formatter)(arg.value, &mut formatter)?;
|
(arg.formatter)(arg.value, &mut formatter)?;
|
||||||
idx += 1;
|
idx += 1;
|
||||||
}
|
}
|
||||||
|
@ -1113,7 +1115,9 @@ pub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {
|
||||||
// Every spec has a corresponding argument that is preceded by
|
// Every spec has a corresponding argument that is preceded by
|
||||||
// a string piece.
|
// a string piece.
|
||||||
for (arg, piece) in iter::zip(fmt, args.pieces) {
|
for (arg, piece) in iter::zip(fmt, args.pieces) {
|
||||||
formatter.buf.write_str(*piece)?;
|
if !piece.is_empty() {
|
||||||
|
formatter.buf.write_str(*piece)?;
|
||||||
|
}
|
||||||
// SAFETY: arg and args.args come from the same Arguments,
|
// SAFETY: arg and args.args come from the same Arguments,
|
||||||
// which guarantees the indexes are always within bounds.
|
// which guarantees the indexes are always within bounds.
|
||||||
unsafe { run(&mut formatter, arg, &args.args) }?;
|
unsafe { run(&mut formatter, arg, &args.args) }?;
|
||||||
|
|
Loading…
Add table
Reference in a new issue