mirror of https://github.com/aria2/aria2
2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Eliminated duplicated filterBitfield initialization code. * src/BitfieldMan.cc * src/BitfieldMan.hpull/1/head
parent
b29fbb9af5
commit
67a23f615a
|
@ -1,3 +1,9 @@
|
|||
2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Eliminated duplicated filterBitfield initialization code.
|
||||
* src/BitfieldMan.cc
|
||||
* src/BitfieldMan.h
|
||||
|
||||
2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Added assert(!req.isNull()) when DlRetryEx is caught(this is
|
||||
|
|
|
@ -573,11 +573,16 @@ bool BitfieldMan::setFilterBit(size_t index) {
|
|||
return setBitInternal(filterBitfield, index, true);
|
||||
}
|
||||
|
||||
void BitfieldMan::addFilter(uint64_t offset, uint64_t length) {
|
||||
void BitfieldMan::ensureFilterBitfield()
|
||||
{
|
||||
if(!filterBitfield) {
|
||||
filterBitfield = new unsigned char[bitfieldLength];
|
||||
memset(filterBitfield, 0, bitfieldLength);
|
||||
}
|
||||
}
|
||||
|
||||
void BitfieldMan::addFilter(uint64_t offset, uint64_t length) {
|
||||
ensureFilterBitfield();
|
||||
if(length > 0) {
|
||||
size_t startBlock = offset/blockLength;
|
||||
size_t endBlock = (offset+length-1)/blockLength;
|
||||
|
@ -589,10 +594,7 @@ void BitfieldMan::addFilter(uint64_t offset, uint64_t length) {
|
|||
}
|
||||
|
||||
void BitfieldMan::removeFilter(uint64_t offset, uint64_t length) {
|
||||
if(!filterBitfield) {
|
||||
filterBitfield = new unsigned char[bitfieldLength];
|
||||
memset(filterBitfield, 0, bitfieldLength);
|
||||
}
|
||||
ensureFilterBitfield();
|
||||
if(length > 0) {
|
||||
size_t startBlock = offset/blockLength;
|
||||
size_t endBlock = (offset+length-1)/blockLength;
|
||||
|
@ -605,11 +607,7 @@ void BitfieldMan::removeFilter(uint64_t offset, uint64_t length) {
|
|||
|
||||
void BitfieldMan::addNotFilter(uint64_t offset, uint64_t length)
|
||||
{
|
||||
// TODO1.5 Create ensureFilterBitfield() to initialize this
|
||||
if(!filterBitfield) {
|
||||
filterBitfield = new unsigned char[bitfieldLength];
|
||||
memset(filterBitfield, 0, bitfieldLength);
|
||||
}
|
||||
ensureFilterBitfield();
|
||||
if(length > 0 && blocks > 0) {
|
||||
size_t startBlock = offset/blockLength;
|
||||
if(blocks <= startBlock) {
|
||||
|
@ -627,10 +625,7 @@ void BitfieldMan::addNotFilter(uint64_t offset, uint64_t length)
|
|||
}
|
||||
|
||||
void BitfieldMan::enableFilter() {
|
||||
if(!filterBitfield) {
|
||||
filterBitfield = new unsigned char[bitfieldLength];
|
||||
memset(filterBitfield, 0, bitfieldLength);
|
||||
}
|
||||
ensureFilterBitfield();
|
||||
filterEnabled = true;
|
||||
updateCache();
|
||||
}
|
||||
|
|
|
@ -83,6 +83,10 @@ private:
|
|||
size_t getEndIndex(size_t index) const;
|
||||
|
||||
uint64_t getCompletedLength(bool useFilter) const;
|
||||
|
||||
// If filterBitfield is 0, allocate bitfieldLength bytes to it and
|
||||
// set 0 to all bytes.
|
||||
void ensureFilterBitfield();
|
||||
public:
|
||||
// [startIndex, endIndex)
|
||||
class Range {
|
||||
|
|
Loading…
Reference in New Issue