git.delta.rocks / jrsonnet / refs/commits / bd9176f7652f

difftreelog

fix std.format freezes with '%g' % 0

Yaroslav Bolyukin2023-05-03parent: #ea82da9.patch.diff
in: master
Upstream issue: https://github.com/google/go-jsonnet/issues/554

1 file changed

modifiedcrates/jrsonnet-evaluator/src/stdlib/format.rsdiffbeforeafterboth
430 for b in frac_str.as_bytes().iter().rev() {430 for b in frac_str.as_bytes().iter().rev() {
431 if *b == b'0' {431 if *b == b'0' {
432 trim -= 1;432 trim -= 1;
433 }433 } else {
434 break;
435 }
434 }436 }
435 }437 }
436 out.push_str(&frac_str[..trim]);438 out.push_str(&frac_str[..trim]);
556 }558 }
557 ConvTypeV::Shorter => {559 ConvTypeV::Shorter => {
558 let value = f64::from_untyped(value.clone())?;560 let value = f64::from_untyped(value.clone())?;
559 let exponent = value.log10().floor();561 let exponent = if value == 0.0 {
562 0.0
563 } else {
564 value.abs().log10().floor()
565 };
560 if exponent < -4.0 || exponent >= fpprec as f64 {566 if exponent < -4.0 || exponent >= fpprec as f64 {
561 render_float_sci(567 render_float_sci(
562 &mut tmp_out,568 &mut tmp_out,