Fix incorrect memory handling

This commit is contained in:
Martin Boehm 2018-02-28 12:24:29 +01:00
parent e075f28913
commit da28595321

View File

@ -383,8 +383,12 @@ func (d *RocksDB) GetSpentOutput(txid string, i uint32) (string, uint32, error)
if err != nil { if err != nil {
return "", 0, err return "", 0, err
} }
o, err := d.getSpentOutput(b) val, err := d.db.GetCF(d.ro, d.cfh[cfInputs], b)
p, err := unpackOutputValue(o) if err != nil {
return "", 0, err
}
defer val.Free()
p, err := unpackOutputValue(val.Data())
if err != nil { if err != nil {
return "", 0, err return "", 0, err
} }
@ -397,15 +401,6 @@ func (d *RocksDB) GetSpentOutput(txid string, i uint32) (string, uint32, error)
return otxid, oi, nil return otxid, oi, nil
} }
func (d *RocksDB) getSpentOutput(key []byte) ([]byte, error) {
val, err := d.db.GetCF(d.ro, d.cfh[cfInputs], key)
if err != nil {
return nil, err
}
defer val.Free()
return val.Data(), nil
}
func (d *RocksDB) writeHeight( func (d *RocksDB) writeHeight(
wb *gorocksdb.WriteBatch, wb *gorocksdb.WriteBatch,
block *bchain.Block, block *bchain.Block,