fix memdb encode/decode EOF issue
parent
2ef71da720
commit
cdd1cb8cc0
|
@ -31,9 +31,6 @@ func (b *bidDB) Mount() {
|
||||||
|
|
||||||
// Add a bid to the bid list under specified auction key.
|
// Add a bid to the bid list under specified auction key.
|
||||||
func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
||||||
buf := bytes.NewBuffer([]byte{})
|
|
||||||
enc := gob.NewEncoder(buf)
|
|
||||||
dec := gob.NewDecoder(buf)
|
|
||||||
k := []byte(auctionId)
|
k := []byte(auctionId)
|
||||||
|
|
||||||
err := b.db.Update(func(txn *badger.Txn) error {
|
err := b.db.Update(func(txn *badger.Txn) error {
|
||||||
|
@ -48,10 +45,7 @@ func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
||||||
}
|
}
|
||||||
// key found -> decode contents to bids
|
// key found -> decode contents to bids
|
||||||
bidsOld.Value(func(val []byte) error {
|
bidsOld.Value(func(val []byte) error {
|
||||||
buf.Reset()
|
dec := gob.NewDecoder(bytes.NewReader(val))
|
||||||
if _, err := buf.Read(val); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := dec.Decode(&bids); err != nil {
|
if err := dec.Decode(&bids); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -62,7 +56,8 @@ func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
||||||
// append bid
|
// append bid
|
||||||
bids = append(bids, bid)
|
bids = append(bids, bid)
|
||||||
// encode new list
|
// encode new list
|
||||||
buf.Reset()
|
buf := bytes.NewBuffer(nil)
|
||||||
|
enc := gob.NewEncoder(buf)
|
||||||
if err := enc.Encode(&bids); err != nil {
|
if err := enc.Encode(&bids); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -80,8 +75,6 @@ func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
||||||
// Get the highest bid in the list under specified auction key.
|
// Get the highest bid in the list under specified auction key.
|
||||||
func (b *bidDB) GetHighestBid(auctionId string) (*types.Bid, error) {
|
func (b *bidDB) GetHighestBid(auctionId string) (*types.Bid, error) {
|
||||||
k := []byte(auctionId)
|
k := []byte(auctionId)
|
||||||
buf := bytes.NewBuffer([]byte{})
|
|
||||||
dec := gob.NewDecoder(buf)
|
|
||||||
|
|
||||||
var bid *types.Bid
|
var bid *types.Bid
|
||||||
|
|
||||||
|
@ -92,13 +85,8 @@ func (b *bidDB) GetHighestBid(auctionId string) (*types.Bid, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
err = bidData.Value(func(val []byte) error {
|
err = bidData.Value(func(val []byte) error {
|
||||||
buf.Reset()
|
|
||||||
if _, err := buf.Read(val); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// panic(len(val))
|
|
||||||
|
|
||||||
var bids []*types.Bid
|
var bids []*types.Bid
|
||||||
|
dec := gob.NewDecoder(bytes.NewReader(val))
|
||||||
if err := dec.Decode(&bids); err != nil {
|
if err := dec.Decode(&bids); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue