Browse Source

codec: decDriver reset should set internal variables mapped to decoder.bytes

Fixes #193
Ugorji Nwoke 8 years ago
parent
commit
708a42d246
4 changed files with 8 additions and 8 deletions
  1. 2 2
      codec/binc.go
  2. 2 2
      codec/cbor.go
  3. 2 2
      codec/msgpack.go
  4. 2 2
      codec/simple.go

+ 2 - 2
codec/binc.go

@@ -910,7 +910,7 @@ func (h *BincHandle) newEncDriver(e *Encoder) encDriver {
 }
 }
 
 
 func (h *BincHandle) newDecDriver(d *Decoder) decDriver {
 func (h *BincHandle) newDecDriver(d *Decoder) decDriver {
-	return &bincDecDriver{d: d, r: d.r, h: h, br: d.bytes}
+	return &bincDecDriver{d: d, h: h, r: d.r, br: d.bytes}
 }
 }
 
 
 func (e *bincEncDriver) reset() {
 func (e *bincEncDriver) reset() {
@@ -920,7 +920,7 @@ func (e *bincEncDriver) reset() {
 }
 }
 
 
 func (d *bincDecDriver) reset() {
 func (d *bincDecDriver) reset() {
-	d.r = d.d.r
+	d.r, d.br = d.d.r, d.d.bytes
 	d.s = nil
 	d.s = nil
 	d.bd, d.bdRead, d.vd, d.vs = 0, false, 0, 0
 	d.bd, d.bdRead, d.vd, d.vs = 0, false, 0, 0
 }
 }

+ 2 - 2
codec/cbor.go

@@ -576,7 +576,7 @@ func (h *CborHandle) newEncDriver(e *Encoder) encDriver {
 }
 }
 
 
 func (h *CborHandle) newDecDriver(d *Decoder) decDriver {
 func (h *CborHandle) newDecDriver(d *Decoder) decDriver {
-	return &cborDecDriver{d: d, r: d.r, h: h, br: d.bytes}
+	return &cborDecDriver{d: d, h: h, r: d.r, br: d.bytes}
 }
 }
 
 
 func (e *cborEncDriver) reset() {
 func (e *cborEncDriver) reset() {
@@ -584,7 +584,7 @@ func (e *cborEncDriver) reset() {
 }
 }
 
 
 func (d *cborDecDriver) reset() {
 func (d *cborDecDriver) reset() {
-	d.r = d.d.r
+	d.r, d.br = d.d.r, d.d.bytes
 	d.bd, d.bdRead = 0, false
 	d.bd, d.bdRead = 0, false
 }
 }
 
 

+ 2 - 2
codec/msgpack.go

@@ -727,7 +727,7 @@ func (h *MsgpackHandle) newEncDriver(e *Encoder) encDriver {
 }
 }
 
 
 func (h *MsgpackHandle) newDecDriver(d *Decoder) decDriver {
 func (h *MsgpackHandle) newDecDriver(d *Decoder) decDriver {
-	return &msgpackDecDriver{d: d, r: d.r, h: h, br: d.bytes}
+	return &msgpackDecDriver{d: d, h: h, r: d.r, br: d.bytes}
 }
 }
 
 
 func (e *msgpackEncDriver) reset() {
 func (e *msgpackEncDriver) reset() {
@@ -735,7 +735,7 @@ func (e *msgpackEncDriver) reset() {
 }
 }
 
 
 func (d *msgpackDecDriver) reset() {
 func (d *msgpackDecDriver) reset() {
-	d.r = d.d.r
+	d.r, d.br = d.d.r, d.d.bytes
 	d.bd, d.bdRead = 0, false
 	d.bd, d.bdRead = 0, false
 }
 }
 
 

+ 2 - 2
codec/simple.go

@@ -510,7 +510,7 @@ func (h *SimpleHandle) newEncDriver(e *Encoder) encDriver {
 }
 }
 
 
 func (h *SimpleHandle) newDecDriver(d *Decoder) decDriver {
 func (h *SimpleHandle) newDecDriver(d *Decoder) decDriver {
-	return &simpleDecDriver{d: d, r: d.r, h: h, br: d.bytes}
+	return &simpleDecDriver{d: d, h: h, r: d.r, br: d.bytes}
 }
 }
 
 
 func (e *simpleEncDriver) reset() {
 func (e *simpleEncDriver) reset() {
@@ -518,7 +518,7 @@ func (e *simpleEncDriver) reset() {
 }
 }
 
 
 func (d *simpleDecDriver) reset() {
 func (d *simpleDecDriver) reset() {
-	d.r = d.d.r
+	d.r, d.br = d.d.r, d.d.bytes
 	d.bd, d.bdRead = 0, false
 	d.bd, d.bdRead = 0, false
 }
 }