aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--equivalence_map.cc12
-rw-r--r--equivalence_map.h18
-rw-r--r--zucchini_apply.cc6
-rw-r--r--zucchini_gen.cc4
-rw-r--r--zucchini_gen_unittest.cc4
5 files changed, 24 insertions, 20 deletions
diff --git a/equivalence_map.cc b/equivalence_map.cc
index 0711bfb..8583e67 100644
--- a/equivalence_map.cc
+++ b/equivalence_map.cc
@@ -215,8 +215,8 @@ EquivalenceCandidate VisitEquivalenceSeed(
/******** OffsetMapper ********/
OffsetMapper::OffsetMapper(std::vector<Equivalence>&& equivalences,
- size_t old_image_size,
- size_t new_image_size)
+ offset_t old_image_size,
+ offset_t new_image_size)
: equivalences_(std::move(equivalences)),
old_image_size_(old_image_size),
new_image_size_(new_image_size) {
@@ -229,8 +229,8 @@ OffsetMapper::OffsetMapper(std::vector<Equivalence>&& equivalences,
}
OffsetMapper::OffsetMapper(EquivalenceSource&& equivalence_source,
- size_t old_image_size,
- size_t new_image_size)
+ offset_t old_image_size,
+ offset_t new_image_size)
: old_image_size_(old_image_size), new_image_size_(new_image_size) {
DCHECK_GT(new_image_size_, 0U);
for (auto e = equivalence_source.GetNext(); e.has_value();
@@ -241,8 +241,8 @@ OffsetMapper::OffsetMapper(EquivalenceSource&& equivalence_source,
}
OffsetMapper::OffsetMapper(const EquivalenceMap& equivalence_map,
- size_t old_image_size,
- size_t new_image_size)
+ offset_t old_image_size,
+ offset_t new_image_size)
: equivalences_(equivalence_map.size()),
old_image_size_(old_image_size),
new_image_size_(new_image_size) {
diff --git a/equivalence_map.h b/equivalence_map.h
index 2ae8801..8b716a1 100644
--- a/equivalence_map.h
+++ b/equivalence_map.h
@@ -89,17 +89,17 @@ class OffsetMapper {
// - From a list of |equivalences|, already sorted (by |src_offset|) and
// pruned, useful for tests.
OffsetMapper(std::vector<Equivalence>&& equivalences,
- size_t old_image_size,
- size_t new_image_size);
+ offset_t old_image_size,
+ offset_t new_image_size);
// - From a generator, useful for Zucchini-apply.
OffsetMapper(EquivalenceSource&& equivalence_source,
- size_t old_image_size,
- size_t new_image_size);
+ offset_t old_image_size,
+ offset_t new_image_size);
// - From an EquivalenceMap that needs to be processed, useful for
// Zucchini-gen.
OffsetMapper(const EquivalenceMap& equivalence_map,
- size_t old_image_size,
- size_t new_image_size);
+ offset_t old_image_size,
+ offset_t new_image_size);
~OffsetMapper();
size_t size() const { return equivalences_.size(); }
@@ -145,9 +145,9 @@ class OffsetMapper {
private:
// |equivalences_| is pruned, i.e., no "old" blocks overlap (and no "new"
// block overlaps). Also, it is sorted by "old" offsets.
- std::vector<Equivalence> equivalences_; // P
- const size_t old_image_size_;
- const size_t new_image_size_;
+ std::vector<Equivalence> equivalences_;
+ const offset_t old_image_size_;
+ const offset_t new_image_size_;
};
// Container of equivalences between |old_image_index| and |new_image_index|,
diff --git a/zucchini_apply.cc b/zucchini_apply.cc
index e202085..2d001a1 100644
--- a/zucchini_apply.cc
+++ b/zucchini_apply.cc
@@ -10,6 +10,7 @@
#include <utility>
#include "base/logging.h"
+#include "base/numerics/safe_conversions.h"
#include "components/zucchini/disassembler.h"
#include "components/zucchini/element_detection.h"
#include "components/zucchini/equivalence_map.h"
@@ -112,8 +113,9 @@ bool ApplyReferencesCorrection(ExecutableType exe_type,
for (const auto& ref_group : old_disasm->MakeReferenceGroups())
pool_groups[ref_group.pool_tag()].push_back(ref_group);
- OffsetMapper offset_mapper(patch.GetEquivalenceSource(), old_image.size(),
- new_image.size());
+ OffsetMapper offset_mapper(patch.GetEquivalenceSource(),
+ base::checked_cast<offset_t>(old_image.size()),
+ base::checked_cast<offset_t>(new_image.size()));
std::vector<ReferenceGroup> new_groups = new_disasm->MakeReferenceGroups();
for (const auto& pool_and_sub_groups : pool_groups) {
diff --git a/zucchini_gen.cc b/zucchini_gen.cc
index 38bd8b1..ac7e33b 100644
--- a/zucchini_gen.cc
+++ b/zucchini_gen.cc
@@ -287,7 +287,9 @@ bool GenerateExecutableElement(ExecutableType exe_type,
EquivalenceMap equivalences =
CreateEquivalenceMap(old_image_index, new_image_index,
new_disasm->num_equivalence_iterations());
- OffsetMapper offset_mapper(equivalences, old_image.size(), new_image.size());
+ OffsetMapper offset_mapper(equivalences,
+ base::checked_cast<offset_t>(old_image.size()),
+ base::checked_cast<offset_t>(new_image.size()));
ReferenceDeltaSink reference_delta_sink;
for (const auto& old_targets : old_image_index.target_pools()) {
diff --git a/zucchini_gen_unittest.cc b/zucchini_gen_unittest.cc
index 97b223e..3a6d2cb 100644
--- a/zucchini_gen_unittest.cc
+++ b/zucchini_gen_unittest.cc
@@ -35,8 +35,8 @@ std::vector<int32_t> GenerateReferencesDeltaTest(
EquivalenceMap&& equivalence_map) {
// OffsetMapper needs image sizes for forward-projection overflow check. These
// are tested elsewhere, so just use arbitrary large value.
- constexpr size_t kOldImageSize = 1000000;
- constexpr size_t kNewImageSize = 1001000;
+ constexpr offset_t kOldImageSize = 1000000;
+ constexpr offset_t kNewImageSize = 1001000;
ReferenceDeltaSink reference_delta_sink;