Remove ignore_deflate_size flag
am: 2d51d2b779

Change-Id: If9452a5f882f7cfa00b2a5d25de730655ddb8202
diff --git a/src/fuzzer.cc b/src/fuzzer.cc
index 0ea63ce..b870ac4 100644
--- a/src/fuzzer.cc
+++ b/src/fuzzer.cc
@@ -97,6 +97,15 @@
       TestExtentsArrayForFuzzer(src_puffs) &&
       TestExtentsArrayForFuzzer(dst_puffs)) {
     const size_t kBufferSize = 1000;
+    if ((!src_deflates.empty() &&
+         kBufferSize <
+             src_deflates.back().offset + src_deflates.back().length) ||
+        (!dst_deflates.empty() &&
+         kBufferSize <
+             dst_deflates.back().offset + dst_deflates.back().length)) {
+      return;
+    }
+
     Buffer src_buffer(kBufferSize);
     Buffer dst_buffer(kBufferSize);
     auto src = MemoryStream::CreateForRead(src_buffer);
diff --git a/src/main.cc b/src/main.cc
index 79fc4f2..12f823f 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -275,7 +275,7 @@
       auto huffer = std::make_shared<Huffer>();
       auto huff_writer = PuffinStream::CreateForHuff(
           std::move(dst_stream), huffer, dst_puff_size, dst_deflates_bit,
-          src_puffs, /*ignore_deflate_size=*/true);
+          src_puffs);
 
       uint64_t bytes_read = 0;
       while (bytes_read < dst_puff_size) {
@@ -300,8 +300,7 @@
     auto huffer = std::make_shared<Huffer>();
     auto dst_stream = PuffinStream::CreateForHuff(std::move(dst_file), huffer,
                                                   src_stream_size,
-                                                  dst_deflates_bit, src_puffs,
-                                                  /*ignore_deflate_size=*/true);
+                                                  dst_deflates_bit, src_puffs);
 
     Buffer buffer(1024 * 1024);
     uint64_t bytes_read = 0;
diff --git a/src/puffin_stream.cc b/src/puffin_stream.cc
index ff79ea2..91d0dd7 100644
--- a/src/puffin_stream.cc
+++ b/src/puffin_stream.cc
@@ -28,9 +28,7 @@
 
 namespace {
 
-bool CheckArgsIntegrity(uint64_t deflate_size,
-                        bool ignore_deflate_size,
-                        uint64_t puff_size,
+bool CheckArgsIntegrity(uint64_t puff_size,
                         const std::vector<BitExtent>& deflates,
                         const std::vector<ByteExtent>& puffs) {
   TEST_AND_RETURN_FALSE(puffs.size() == deflates.size());
@@ -39,10 +37,6 @@
   if (!puffs.empty()) {
     TEST_AND_RETURN_FALSE(puff_size >=
                           puffs.back().offset + puffs.back().length);
-    if (!ignore_deflate_size) {
-      TEST_AND_RETURN_FALSE(deflate_size * 8 >=
-                            deflates.back().offset + deflates.back().length);
-    }
   }
 
   // Check to make sure |puffs| and |deflates| are sorted and non-overlapping.
@@ -67,12 +61,8 @@
     const std::vector<BitExtent>& deflates,
     const std::vector<ByteExtent>& puffs,
     size_t max_cache_size) {
-  uint64_t deflate_size = 0;
-  TEST_AND_RETURN_VALUE(stream->GetSize(&deflate_size), nullptr);
-  TEST_AND_RETURN_VALUE(
-      CheckArgsIntegrity(deflate_size, /*ignore_deflate_size=*/false, puff_size,
-                         deflates, puffs),
-      nullptr);
+  TEST_AND_RETURN_VALUE(CheckArgsIntegrity(puff_size, deflates, puffs),
+                        nullptr);
   TEST_AND_RETURN_VALUE(stream->Seek(0), nullptr);
 
   UniqueStreamPtr puffin_stream(new PuffinStream(std::move(stream), puffer,
@@ -87,14 +77,8 @@
     std::shared_ptr<Huffer> huffer,
     uint64_t puff_size,
     const std::vector<BitExtent>& deflates,
-    const std::vector<ByteExtent>& puffs,
-    bool ignore_deflate_size) {
-  uint64_t deflate_size = 0;
-  if (!ignore_deflate_size) {
-    TEST_AND_RETURN_VALUE(stream->GetSize(&deflate_size), nullptr);
-  }
-  TEST_AND_RETURN_VALUE(CheckArgsIntegrity(deflate_size, ignore_deflate_size,
-                                           puff_size, deflates, puffs),
+    const std::vector<ByteExtent>& puffs) {
+  TEST_AND_RETURN_VALUE(CheckArgsIntegrity(puff_size, deflates, puffs),
                         nullptr);
   TEST_AND_RETURN_VALUE(stream->Seek(0), nullptr);
 
diff --git a/src/puffin_stream.h b/src/puffin_stream.h
index 9e12467..47b8ace 100644
--- a/src/puffin_stream.h
+++ b/src/puffin_stream.h
@@ -57,14 +57,11 @@
   //                 completely puffed.
   // |deflates|  IN  The location of deflates in |stream|.
   // |puffs|     IN  The location of puffs into the input puff stream.
-  // |ignore_deflate_size| IN  Ignores integrity checking the size of the
-  //                           |stream|.
   static UniqueStreamPtr CreateForHuff(UniqueStreamPtr stream,
                                        std::shared_ptr<Huffer> huffer,
                                        uint64_t puff_size,
                                        const std::vector<BitExtent>& deflates,
-                                       const std::vector<ByteExtent>& puffs,
-                                       bool ignore_deflate_size);
+                                       const std::vector<ByteExtent>& puffs);
 
   bool GetSize(uint64_t* size) const override;
 
diff --git a/src/puffin_unittest.cc b/src/puffin_unittest.cc
index 669ae30..8efcfe3 100644
--- a/src/puffin_unittest.cc
+++ b/src/puffin_unittest.cc
@@ -212,8 +212,7 @@
 
     src_puffin_stream =
         PuffinStream::CreateForHuff(std::move(deflate_stream), huffer,
-                                    puff_size, deflate_extents, puff_extents,
-                                    /*ignore_deflate_size=*/true);
+                                    puff_size, deflate_extents, puff_extents);
 
     ASSERT_TRUE(
         src_puffin_stream->Write(puff_buffer.data(), puff_buffer.size()));
@@ -575,29 +574,4 @@
                              kGapPuffs, kGapPuffExtents);
 }
 
-TEST_F(PuffinTest, IgnoreDeflateSizeTest) {
-  std::shared_ptr<Huffer> huffer(new Huffer());
-  Buffer out_deflate_buffer;
-  EXPECT_FALSE(PuffinStream::CreateForHuff(
-      MemoryStream::CreateForWrite(&out_deflate_buffer), huffer,
-      kGapPuffs.size(), kGapSubblockDeflateExtents, kGapPuffExtents,
-      /*ignore_deflate_size=*/false));
-
-  EXPECT_TRUE(PuffinStream::CreateForHuff(
-      MemoryStream::CreateForWrite(&out_deflate_buffer), huffer,
-      kGapPuffs.size(), kGapSubblockDeflateExtents, kGapPuffExtents,
-      /*ignore_deflate_size=*/true));
-
-  out_deflate_buffer.resize(kGapDeflates.size());
-  EXPECT_TRUE(PuffinStream::CreateForHuff(
-      MemoryStream::CreateForWrite(&out_deflate_buffer), huffer,
-      kGapPuffs.size(), kGapSubblockDeflateExtents, kGapPuffExtents,
-      /*ignore_deflate_size=*/true));
-
-  EXPECT_TRUE(PuffinStream::CreateForHuff(
-      MemoryStream::CreateForWrite(&out_deflate_buffer), huffer,
-      kGapPuffs.size(), kGapSubblockDeflateExtents, kGapPuffExtents,
-      /*ignore_deflate_size=*/false));
-}
-
 }  // namespace puffin
diff --git a/src/puffpatch.cc b/src/puffpatch.cc
index 2c499a3..2dd3a29 100644
--- a/src/puffpatch.cc
+++ b/src/puffpatch.cc
@@ -164,8 +164,7 @@
 
   // For writing into destination.
   auto writer = BsdiffStream::Create(PuffinStream::CreateForHuff(
-      std::move(dst), huffer, dst_puff_size, dst_deflates, dst_puffs,
-      /*ignore_deflate_size=*/false));
+      std::move(dst), huffer, dst_puff_size, dst_deflates, dst_puffs));
   TEST_AND_RETURN_FALSE(writer);
 
   // Running bspatch itself.
diff --git a/src/stream_unittest.cc b/src/stream_unittest.cc
index 30813ee..76fe34b 100644
--- a/src/stream_unittest.cc
+++ b/src/stream_unittest.cc
@@ -218,8 +218,7 @@
   shared_ptr<Huffer> huffer(new Huffer());
   auto write_stream = PuffinStream::CreateForHuff(
       MemoryStream::CreateForWrite(&buf), huffer, kPuffsSample1.size(),
-      kSubblockDeflateExtentsSample1, kPuffExtentsSample1,
-      /*ignore_deflate_size=*/false);
+      kSubblockDeflateExtentsSample1, kPuffExtentsSample1);
 
   ASSERT_TRUE(write_stream->Seek(0));
   for (size_t idx = 0; idx < kPuffsSample1.size(); idx++) {