summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvan Jegen <s.jegen@gmail.com>2015-06-14 17:51:58 +0200
committerSilvan Jegen <s.jegen@gmail.com>2015-06-14 17:52:22 +0200
commit3a4cf5d5b025c34b0c9f0f3bb1857acaea84e7d6 (patch)
tree53d5d3677e1281c807777e6328316a4eaaedb352
parent04425938df3790177e6b78b9803396cf928d5757 (diff)
Change copy() usage and remove unneeded lenouts
-rw-r--r--unxml.go24
1 files 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