From 3a4cf5d5b025c34b0c9f0f3bb1857acaea84e7d6 Mon Sep 17 00:00:00 2001 From: Silvan Jegen Date: Sun, 14 Jun 2015 17:51:58 +0200 Subject: Change copy() usage and remove unneeded lenouts --- unxml.go | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/unxml.go b/unxml.go index a9f8941..daa19b6 100644 --- a/unxml.go +++ b/unxml.go @@ -137,18 +137,15 @@ func (r *ElementReader) Read(out []byte) (int, error) { lenlr := len(r.xr.lastread) if lenlr > 0 { - if lenlr < lenout { - //fmt.Printf("Using lastread: %q\n", r.xr.lastread) - n = copy(out[0:], r.xr.lastread) - r.xr.count += n - lenout -= n - r.xr.lastread = make([]byte, 0, lenout) - } else { + //fmt.Printf("Using lastread: %q\n", r.xr.lastread) + n = copy(out, r.xr.lastread) + r.xr.count += n + if n < lenlr { //fmt.Printf("Using lastread not enough: %q\n", r.xr.lastread) - n = copy(out[0:], r.xr.lastread[:lenout]) - r.xr.lastread = r.xr.lastread[lenout:] - return n, err + r.xr.lastread = r.xr.lastread[n:] + return r.xr.count, err } + r.xr.lastread = make([]byte, 0, lenout) } for { @@ -167,11 +164,10 @@ func (r *ElementReader) Read(out []byte) (int, error) { //fmt.Printf("HAD SPACE: %q, count: %d\n", text, r.xr.count) n = copy(out[r.xr.count:], text) r.xr.count += n - lenout -= n if n < len(text) { - //fmt.Printf("HAD NO SPACE: wrote: %q, count: %d, lenout: %d\n", text[:lenout], r.xr.count, lenout) + //fmt.Printf("HAD NO SPACE: wrote: %q, count: %d, n: %d\n", text[:n], r.xr.count, n) r.xr.lastread = text[n:] - //fmt.Printf("lastread is now: %q\n", text[lenout:]) + //fmt.Printf("lastread is now: %q\n", text[n:]) return r.xr.count, err } @@ -185,7 +181,6 @@ func (r *ElementReader) Read(out []byte) (int, error) { //fmt.Printf("TokenRaw: %s\n", raw) n := copy(out[r.xr.count:], raw) r.xr.count += n - lenout -= n if n < len(raw) { r.xr.lastread = raw[n:] return r.xr.count, err @@ -206,7 +201,6 @@ func (r *ElementReader) Read(out []byte) (int, error) { raw := r.xr.tokenizer.Raw() n := copy(out[r.xr.count:], raw) r.xr.count += n - lenout -= n if n < len(raw) { r.xr.lastread = raw[n:] return r.xr.count, err -- cgit v1.2.1-18-gbd029