| Index: delta_diff_generator.cc
|
| diff --git a/delta_diff_generator.cc b/delta_diff_generator.cc
|
| index 21a4c03ad84b98decd39afa9c7a94bfd6e4f29d1..4d8ccab0697fa1844d7605d28b10eefc620b95d8 100644
|
| --- a/delta_diff_generator.cc
|
| +++ b/delta_diff_generator.cc
|
| @@ -30,6 +30,7 @@
|
| #include "update_engine/full_update_generator.h"
|
| #include "update_engine/graph_types.h"
|
| #include "update_engine/graph_utils.h"
|
| +#include "update_engine/metadata.h"
|
| #include "update_engine/omaha_hash_calculator.h"
|
| #include "update_engine/payload_signer.h"
|
| #include "update_engine/subprocess.h"
|
| @@ -52,31 +53,6 @@ typedef DeltaDiffGenerator::Block Block;
|
| typedef map<const DeltaArchiveManifest_InstallOperation*,
|
| const string*> OperationNameMap;
|
|
|
| -namespace {
|
| -const size_t kBlockSize = 4096; // bytes
|
| -
|
| -// TODO(adlr): switch from 1GiB to 2GiB when we no longer care about old
|
| -// clients:
|
| -const size_t kRootFSPartitionSize = 1 * 1024 * 1024 * 1024; // bytes
|
| -const uint64_t kVersionNumber = 1;
|
| -const uint64_t kFullUpdateChunkSize = 1024 * 1024; // bytes
|
| -
|
| -static const char* kInstallOperationTypes[] = {
|
| - "REPLACE",
|
| - "REPLACE_BZ",
|
| - "MOVE",
|
| - "BSDIFF"
|
| -};
|
| -
|
| -// Stores all Extents for a file into 'out'. Returns true on success.
|
| -bool GatherExtents(const string& path,
|
| - google::protobuf::RepeatedPtrField<Extent>* out) {
|
| - vector<Extent> extents;
|
| - TEST_AND_RETURN_FALSE(extent_mapper::ExtentsForFileFibmap(path, &extents));
|
| - DeltaDiffGenerator::StoreExtents(extents, out);
|
| - return true;
|
| -}
|
| -
|
| // Runs the bsdiff tool on two files and returns the resulting delta in
|
| // 'out'. Returns true on success.
|
| bool BsdiffFiles(const string& old_file,
|
| @@ -152,6 +128,31 @@ bool AddInstallOpToBlocksVector(
|
| return true;
|
| }
|
|
|
| +namespace {
|
| +const size_t kBlockSize = 4096; // bytes
|
| +
|
| +// TODO(adlr): switch from 1GiB to 2GiB when we no longer care about old
|
| +// clients:
|
| +const size_t kRootFSPartitionSize = 1 * 1024 * 1024 * 1024; // bytes
|
| +const uint64_t kVersionNumber = 1;
|
| +const uint64_t kFullUpdateChunkSize = 1024 * 1024; // bytes
|
| +
|
| +static const char* kInstallOperationTypes[] = {
|
| + "REPLACE",
|
| + "REPLACE_BZ",
|
| + "MOVE",
|
| + "BSDIFF"
|
| +};
|
| +
|
| +// Stores all Extents for a file into 'out'. Returns true on success.
|
| +bool GatherExtents(const string& path,
|
| + google::protobuf::RepeatedPtrField<Extent>* out) {
|
| + vector<Extent> extents;
|
| + TEST_AND_RETURN_FALSE(extent_mapper::ExtentsForFileFibmap(path, &extents));
|
| + DeltaDiffGenerator::StoreExtents(extents, out);
|
| + return true;
|
| +}
|
| +
|
| // For a given regular file which must exist at new_root + path, and
|
| // may exist at old_root + path, creates a new InstallOperation and
|
| // adds it to the graph. Also, populates the |blocks| array as
|
| @@ -1390,6 +1391,16 @@ bool DeltaDiffGenerator::GenerateDeltaUpdateFile(
|
| LOG(INFO) << "done reading normal files";
|
| CheckGraph(graph);
|
|
|
| + LOG(INFO) << "Starting metadata processing";
|
| + TEST_AND_RETURN_FALSE(DeltaReadMetadata(&graph,
|
| + &blocks,
|
| + old_image,
|
| + new_image,
|
| + fd,
|
| + &data_file_size));
|
| + LOG(INFO) << "Done metadata processing";
|
| + CheckGraph(graph);
|
| +
|
| graph.resize(graph.size() + 1);
|
| TEST_AND_RETURN_FALSE(ReadUnwrittenBlocks(blocks,
|
| fd,
|
|
|