diff options
author | Silvan Jegen <s.jegen@gmail.com> | 2015-06-14 17:51:58 +0200 |
---|---|---|
committer | Silvan Jegen <s.jegen@gmail.com> | 2015-06-14 17:52:22 +0200 |
commit | 3a4cf5d5b025c34b0c9f0f3bb1857acaea84e7d6 (patch) | |
tree | 53d5d3677e1281c807777e6328316a4eaaedb352 | |
parent | 04425938df3790177e6b78b9803396cf928d5757 (diff) |
Change copy() usage and remove unneeded lenouts
-rw-r--r-- | unxml.go | 24 |
1 files changed, 9 insertions, 15 deletions
@@ -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 |