Bläddra i källkod

2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Removed unused getOverflow(). Added assertion in
	PiecedSegment::updateWrittenLength() to check updated written
	length does not exceed piece length.
	* src/GrowSegment.h
	* src/PiecedSegment.cc
	* src/PiecedSegment.h
	* src/Segment.h
	* test/SegmentTest.cc
Tatsuhiro Tsujikawa 15 år sedan
förälder
incheckning
9d0eb8c08b
6 ändrade filer med 18 tillägg och 36 borttagningar
  1. 11 0
      ChangeLog
  2. 0 5
      src/GrowSegment.h
  3. 2 6
      src/PiecedSegment.cc
  4. 0 6
      src/PiecedSegment.h
  5. 0 2
      src/Segment.h
  6. 5 17
      test/SegmentTest.cc

+ 11 - 0
ChangeLog

@@ -1,3 +1,14 @@
+2010-06-26  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Removed unused getOverflow(). Added assertion in
+	PiecedSegment::updateWrittenLength() to check updated written
+	length does not exceed piece length.
+	* src/GrowSegment.h
+	* src/PiecedSegment.cc
+	* src/PiecedSegment.h
+	* src/Segment.h
+	* test/SegmentTest.cc
+
 2010-06-26  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Return null if written length > 0 even if SegmentEntry->cuid

+ 0 - 5
src/GrowSegment.h

@@ -83,11 +83,6 @@ public:
     return writtenLength_;
   }
 
-  virtual size_t getOverflowLength() const
-  {
-    return 0;
-  }
-
   virtual void updateWrittenLength(size_t bytes);
 
 #ifdef ENABLE_MESSAGE_DIGEST

+ 2 - 6
src/PiecedSegment.cc

@@ -40,7 +40,7 @@ namespace aria2 {
 
 PiecedSegment::PiecedSegment
 (size_t pieceLength, const SharedHandle<Piece>& piece):
-  pieceLength_(pieceLength), overflowLength_(0), piece_(piece)
+  pieceLength_(pieceLength), piece_(piece)
 {
   size_t index;
   bool t = piece_->getFirstMissingBlockIndexWithoutLock(index);
@@ -78,10 +78,7 @@ size_t PiecedSegment::getLength() const
 void PiecedSegment::updateWrittenLength(size_t bytes)
 {
   size_t newWrittenLength = writtenLength_+bytes;
-  if(newWrittenLength > piece_->getLength()) {
-    overflowLength_ = newWrittenLength-piece_->getLength();
-    newWrittenLength = piece_->getLength();
-  }
+  assert(newWrittenLength <= piece_->getLength());
   for(size_t i = writtenLength_/piece_->getBlockLength(),
         end = newWrittenLength/piece_->getBlockLength(); i < end; ++i) {
     piece_->completeBlock(i);
@@ -115,7 +112,6 @@ std::string PiecedSegment::getHashString()
 void PiecedSegment::clear()
 {
   writtenLength_ = 0;
-  overflowLength_ = 0;
   piece_->clearAllBlock();
 
 #ifdef ENABLE_MESSAGE_DIGEST

+ 0 - 6
src/PiecedSegment.h

@@ -46,7 +46,6 @@ private:
    * The last piece likely have shorter length than the other length.
    */
   size_t pieceLength_;
-  size_t overflowLength_;
   SharedHandle<Piece> piece_;
   size_t writtenLength_;
 
@@ -75,11 +74,6 @@ public:
     return writtenLength_;
   }
 
-  virtual size_t getOverflowLength() const
-  {
-    return overflowLength_;
-  }
-
   virtual void updateWrittenLength(size_t bytes);
 
 #ifdef ENABLE_MESSAGE_DIGEST

+ 0 - 2
src/Segment.h

@@ -65,8 +65,6 @@ public:
 
   virtual size_t getWrittenLength() const = 0;
 
-  virtual size_t getOverflowLength() const = 0;
-
   virtual void updateWrittenLength(size_t bytes) = 0;
 
 #ifdef ENABLE_MESSAGE_DIGEST

+ 5 - 17
test/SegmentTest.cc

@@ -1,14 +1,15 @@
 #include "PiecedSegment.h"
-#include "Piece.h"
+
 #include <cppunit/extensions/HelperMacros.h>
 
+#include "Piece.h"
+
 namespace aria2 {
 
 class SegmentTest : public CppUnit::TestFixture {
 
   CPPUNIT_TEST_SUITE(SegmentTest);
   CPPUNIT_TEST(testUpdateWrittenLength);
-  CPPUNIT_TEST(testUpdateWrittenLength_overflow);
   CPPUNIT_TEST(testUpdateWrittenLength_lastPiece);
   CPPUNIT_TEST(testUpdateWrittenLength_incompleteLastPiece);
   CPPUNIT_TEST(testClear);
@@ -19,7 +20,6 @@ public:
   void setUp() {}
 
   void testUpdateWrittenLength();
-  void testUpdateWrittenLength_overflow();
   void testUpdateWrittenLength_lastPiece();
   void testUpdateWrittenLength_incompleteLastPiece();
   void testClear();
@@ -42,22 +42,12 @@ void SegmentTest::testUpdateWrittenLength()
   CPPUNIT_ASSERT(p->pieceComplete());
 }
 
-void SegmentTest::testUpdateWrittenLength_overflow()
-{
-  SharedHandle<Piece> p(new Piece(0, 16*1024*10));
-  PiecedSegment s(16*1024*10, p);
-
-  s.updateWrittenLength(16*1024*11);
-  CPPUNIT_ASSERT(p->pieceComplete());
-  CPPUNIT_ASSERT_EQUAL((size_t)16*1024, s.getOverflowLength());
-}
-
 void SegmentTest::testUpdateWrittenLength_lastPiece()
 {
   SharedHandle<Piece> p(new Piece(0, 16*1024*9+1));
   PiecedSegment s(16*1024*10, p);
 
-  s.updateWrittenLength(16*1024*10);
+  s.updateWrittenLength(p->getLength());
   CPPUNIT_ASSERT(p->pieceComplete());
 }
 
@@ -76,12 +66,10 @@ void SegmentTest::testClear()
 {
   SharedHandle<Piece> p(new Piece(0, 16*1024*10));
   PiecedSegment s(16*1024*10, p);
-  s.updateWrittenLength(16*1024*11);
+  s.updateWrittenLength(16*1024*10);
   CPPUNIT_ASSERT_EQUAL((size_t)16*1024*10, s.getWrittenLength());
-  CPPUNIT_ASSERT_EQUAL((size_t)16*1024, s.getOverflowLength());
   s.clear();
   CPPUNIT_ASSERT_EQUAL((size_t)0, s.getWrittenLength());
-  CPPUNIT_ASSERT_EQUAL((size_t)0, s.getOverflowLength());
 }
 
 } // namespace aria2