Only filter old_visited_blocks for inplace update.
For inplace update, old blocks can only be visited once, but there's
no such restrictions for minor version 2 and up.
Test: generate a payload
Change-Id: I28ddde27e9de8070e5185ad9837bfe2a79d49d27
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index 41de623..255de91 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -368,8 +368,12 @@
// time, it will be easy (non-complex) to have many operations read
// from the same source blocks. At that time, this code can die. -adlr
auto old_file = old_files_map[new_file.name];
- vector<Extent> old_file_extents =
- FilterExtentRanges(old_file.extents, old_visited_blocks);
+ vector<Extent> old_file_extents;
+ if (version.InplaceUpdate())
+ old_file_extents =
+ FilterExtentRanges(old_file.extents, old_visited_blocks);
+ else
+ old_file_extents = old_file.extents;
old_visited_blocks.AddExtents(old_file_extents);
file_delta_processors.emplace_back(old_part.path,