X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=torrent-piece-request-order.go;h=10623da0b5d83594c396a14a11a2599123b44151;hb=702b2c77a0c499c6755e3c2865e974b10bd25448;hp=86c9839893b313a52e7c201c5e24af6293864bfb;hpb=ffb98097fa5117a987980062b2acf958e871a0b8;p=btrtrc.git diff --git a/torrent-piece-request-order.go b/torrent-piece-request-order.go index 86c98398..10623da0 100644 --- a/torrent-piece-request-order.go +++ b/torrent-piece-request-order.go @@ -8,9 +8,11 @@ func (t *Torrent) updatePieceRequestOrder(pieceIndex int) { if t.storage == nil { return } - t.cl.pieceRequestOrder[t.clientPieceRequestOrderKey()].Update( - t.pieceRequestOrderKey(pieceIndex), - t.requestStrategyPieceOrderState(pieceIndex)) + if ro, ok := t.cl.pieceRequestOrder[t.clientPieceRequestOrderKey()]; ok { + ro.Update( + t.pieceRequestOrderKey(pieceIndex), + t.requestStrategyPieceOrderState(pieceIndex)) + } } func (t *Torrent) clientPieceRequestOrderKey() interface{} { @@ -45,7 +47,7 @@ func (t *Torrent) initPieceRequestOrder() { key := t.clientPieceRequestOrderKey() cpro := t.cl.pieceRequestOrder if cpro[key] == nil { - cpro[key] = request_strategy.NewPieceOrder() + cpro[key] = request_strategy.NewPieceOrder(request_strategy.NewAjwernerBtree(), t.numPieces()) } }