X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=torrent-piece-request-order.go;h=17206679e86919c8fa79a77326e927d8e9a7496f;hb=0b6209062d730cbbda0bb66391089f5c2b0e8084;hp=7b1ef97855b2cf66225b5b383b86c9478eec2d40;hpb=3d3052b8bddd8b3df9485c13ff639f47fb527f9d;p=btrtrc.git diff --git a/torrent-piece-request-order.go b/torrent-piece-request-order.go index 7b1ef978..17206679 100644 --- a/torrent-piece-request-order.go +++ b/torrent-piece-request-order.go @@ -5,6 +5,9 @@ import ( ) func (t *Torrent) updatePieceRequestOrder(pieceIndex int) { + if t.storage == nil { + return + } t.cl.pieceRequestOrder[t.clientPieceRequestOrderKey()].Update( t.pieceRequestOrderKey(pieceIndex), t.requestStrategyPieceOrderState(pieceIndex)) @@ -18,6 +21,9 @@ func (t *Torrent) clientPieceRequestOrderKey() interface{} { } func (t *Torrent) deletePieceRequestOrder() { + if t.storage == nil { + return + } cpro := t.cl.pieceRequestOrder key := t.clientPieceRequestOrderKey() pro := cpro[key] @@ -30,17 +36,23 @@ func (t *Torrent) deletePieceRequestOrder() { } func (t *Torrent) initPieceRequestOrder() { + if t.storage == nil { + return + } if t.cl.pieceRequestOrder == nil { t.cl.pieceRequestOrder = make(map[interface{}]*request_strategy.PieceRequestOrder) } 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()) } } func (t *Torrent) addRequestOrderPiece(i int) { + if t.storage == nil { + return + } t.cl.pieceRequestOrder[t.clientPieceRequestOrderKey()].Add( t.pieceRequestOrderKey(i), t.requestStrategyPieceOrderState(i))