From 076a35075a274037d0bd9ed5ee8ff1e51a0d1a3f Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Fri, 4 Jul 2014 16:53:23 -0700 Subject: [PATCH] write spaces in batches --- json.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/json.rs b/json.rs index 68ff1908..d762ebf0 100644 --- a/json.rs +++ b/json.rs @@ -792,11 +792,20 @@ fn fmt_f64_or_null(wr: &mut W, v: f64) -> IoResult<()> { } } -fn spaces(wr: &mut W, n: uint) -> IoResult<()> { - for _ in range(0, n) { - try!(wr.write_str(" ")); +fn spaces(wr: &mut W, mut n: uint) -> IoResult<()> { + static len: uint = 16; + static buf: [u8, ..len] = [b' ', ..len]; + + while n >= buf.len() { + try!(wr.write(buf)); + n -= buf.len(); + } + + if n > 0 { + wr.write(buf.slice_to(n)) + } else { + Ok(()) } - Ok(()) } #[deriving(Show)]