diff options
author | Samuel Huang <huangs@chromium.org> | 2018-06-21 15:50:22 +0000 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2021-07-25 19:59:48 -0700 |
commit | f35146e48edca6755e98749a2cb5cc00272d308b (patch) | |
tree | 62e88698cbb4f79fea0f7b10326961b0f665e0a8 /zucchini_gen.cc | |
parent | 87dabe1110568bd11cd9044b1c5c49ab598bc2ad (diff) | |
download | zucchini-f35146e48edca6755e98749a2cb5cc00272d308b.tar.gz |
[Zucchini] Refactor Zucchini-gen in zucchini_io layer.
This CL moves Zucchini-gen invocation code from zucchini_commands.cc
(in target zucchini) to zucchini_integration.cc (in target zucchini_io)
to clean up layering in Zucchini API, i.e.:
- zucchini_lib: Operates on buffers only.
- zucchini_io: Adds files interface, uses memory-mapped I/O.
- zucchini: Stand-alone executable that parses command-line arguments.
Other changes:
- Rename zucchini_lib functions (zuchcini.h), to dedup names and
emphasize that these functions operate on buffers:
- GenerateEnsemble() -> GenerateBuffer(),
- GenerateEnsembleWithImposedMatches() -> GenerateBufferImposed(),
- GenerateRaw() -> GenerateBufferRaw(),
- Apply() -> ApplyBuffer().
These renames only affect Zucchini and various tests.
- Variable renames and parameter reordering in zucchini_integration.cc.
- Remove '-dd' param in help text of Zucchini-detect (was never ported
from Trunk, and has been recently deleted there as well).
- Replace all base::File&& with base::File.
- Miscellaneous cleanup for header include.
- Update README.md.
Change-Id: I835b80d4d3d7b291fa822a7a89dab225bf9171e9
Reviewed-on: https://chromium-review.googlesource.com/1105625
Reviewed-by: Samuel Huang <huangs@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569274}
NOKEYCHECK=True
GitOrigin-RevId: 9f0f325d6e2595deb8d50c77e0464946f3bf1ec1
Diffstat (limited to 'zucchini_gen.cc')
-rw-r--r-- | zucchini_gen.cc | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/zucchini_gen.cc b/zucchini_gen.cc index 29be814..19da0af 100644 --- a/zucchini_gen.cc +++ b/zucchini_gen.cc @@ -319,13 +319,13 @@ bool GenerateExecutableElement(ExecutableType exe_type, reference_bytes_mixer.get(), patch_writer); } -status::Code GenerateEnsembleCommon(ConstBufferView old_image, - ConstBufferView new_image, - std::unique_ptr<EnsembleMatcher> matcher, - EnsemblePatchWriter* patch_writer) { +status::Code GenerateBufferCommon(ConstBufferView old_image, + ConstBufferView new_image, + std::unique_ptr<EnsembleMatcher> matcher, + EnsemblePatchWriter* patch_writer) { if (!matcher->RunMatch(old_image, new_image)) { LOG(INFO) << "RunMatch() failed, generating raw patch."; - return GenerateRaw(old_image, new_image, patch_writer); + return GenerateBufferRaw(old_image, new_image, patch_writer); } const std::vector<ElementMatch>& matches = matcher->matches(); @@ -335,7 +335,7 @@ status::Code GenerateEnsembleCommon(ConstBufferView old_image, size_t num_elements = matches.size(); if (num_elements == 0) { LOG(INFO) << "No nontrival matches, generating raw patch."; - return GenerateRaw(old_image, new_image, patch_writer); + return GenerateBufferRaw(old_image, new_image, patch_writer); } // "Gaps" are |new_image| bytes not covered by new_elements in |matches|. @@ -421,30 +421,29 @@ status::Code GenerateEnsembleCommon(ConstBufferView old_image, /******** Exported Functions ********/ -status::Code GenerateEnsemble(ConstBufferView old_image, - ConstBufferView new_image, - EnsemblePatchWriter* patch_writer) { - return GenerateEnsembleCommon( +status::Code GenerateBuffer(ConstBufferView old_image, + ConstBufferView new_image, + EnsemblePatchWriter* patch_writer) { + return GenerateBufferCommon( old_image, new_image, std::make_unique<HeuristicEnsembleMatcher>(nullptr), patch_writer); } -status::Code GenerateEnsembleWithImposedMatches( - ConstBufferView old_image, - ConstBufferView new_image, - std::string imposed_matches, - EnsemblePatchWriter* patch_writer) { +status::Code GenerateBufferImposed(ConstBufferView old_image, + ConstBufferView new_image, + std::string imposed_matches, + EnsemblePatchWriter* patch_writer) { if (imposed_matches.empty()) - return GenerateEnsemble(old_image, new_image, patch_writer); + return GenerateBuffer(old_image, new_image, patch_writer); - return GenerateEnsembleCommon( + return GenerateBufferCommon( old_image, new_image, std::make_unique<ImposedEnsembleMatcher>(imposed_matches), patch_writer); } -status::Code GenerateRaw(ConstBufferView old_image, - ConstBufferView new_image, - EnsemblePatchWriter* patch_writer) { +status::Code GenerateBufferRaw(ConstBufferView old_image, + ConstBufferView new_image, + EnsemblePatchWriter* patch_writer) { ImageIndex old_image_index(old_image); EncodedView old_view(old_image_index); std::vector<offset_t> old_sa = |