aboutsummaryrefslogtreecommitdiff
path: root/zucchini_gen.cc
diff options
context:
space:
mode:
authorSamuel Huang <huangs@chromium.org>2018-06-21 15:50:22 +0000
committerCopybara-Service <copybara-worker@google.com>2021-07-25 19:59:48 -0700
commitf35146e48edca6755e98749a2cb5cc00272d308b (patch)
tree62e88698cbb4f79fea0f7b10326961b0f665e0a8 /zucchini_gen.cc
parent87dabe1110568bd11cd9044b1c5c49ab598bc2ad (diff)
downloadzucchini-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.cc39
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 =