Script remove more DISALLOW_COPY_AND_ASSIGNs
This applies a script previously used for large directories on all
remaining (smaller) directories as a single chunk.
This replaces DISALLOW_COPY_AND_ASSIGN with explicit constructor deletes
where a local script is able to detect its insertion place (~Foo() is
public => insert before this line).
This is incomplete as not all classes have a public ~Foo() declared, so
not all DISALLOW_COPY_AND_ASSIGN occurrences are replaced.
IWYU cleanup is left as a separate pass that is easier when these macros
go away.
Bug: 1010217
Change-Id: I572936462f763e1dd15dd88cdcf451ee14b34dd1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3182480
Reviewed-by: Lei Zhang <thestig@chromium.org>
Owners-Override: Lei Zhang <thestig@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#925533}
diff --git a/courgette/adjustment_method.cc b/courgette/adjustment_method.cc
index 939d02e..cdcd77d 100644
--- a/courgette/adjustment_method.cc
+++ b/courgette/adjustment_method.cc
@@ -214,6 +214,9 @@
m_root_(nullptr),
p_root_(nullptr) {}
+ AssignmentProblem(const AssignmentProblem&) = delete;
+ AssignmentProblem& operator=(const AssignmentProblem&) = delete;
+
~AssignmentProblem() {
for (size_t i = 0; i < all_nodes_.size(); ++i)
delete all_nodes_[i];
@@ -562,14 +565,16 @@
NodeQueue unsolved_;
std::vector<Node*> all_nodes_;
-
- DISALLOW_COPY_AND_ASSIGN(AssignmentProblem);
};
class GraphAdjuster : public AdjustmentMethod {
public:
GraphAdjuster()
: prog_(nullptr), model_(nullptr), debug_label_index_gen_(0) {}
+
+ GraphAdjuster(const GraphAdjuster&) = delete;
+ GraphAdjuster& operator=(const GraphAdjuster&) = delete;
+
~GraphAdjuster() = default;
bool Adjust(const AssemblyProgram& model, AssemblyProgram* program) {
@@ -659,9 +664,6 @@
// Note LabelInfo is allocated inside map, so the LabelInfo lifetimes are
// managed by the map.
std::map<Label*, LabelInfo> label_infos_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(GraphAdjuster);
};
diff --git a/courgette/adjustment_method_2.cc b/courgette/adjustment_method_2.cc
index 467e79a2..e7569f5 100644
--- a/courgette/adjustment_method_2.cc
+++ b/courgette/adjustment_method_2.cc
@@ -1228,6 +1228,10 @@
class Adjuster : public AdjustmentMethod {
public:
Adjuster() : prog_(nullptr), model_(nullptr) {}
+
+ Adjuster(const Adjuster&) = delete;
+ Adjuster& operator=(const Adjuster&) = delete;
+
~Adjuster() = default;
bool Adjust(const AssemblyProgram& model, AssemblyProgram* program) {
@@ -1285,9 +1289,6 @@
const AssemblyProgram* model_; // Program to be mimicked, owned by caller.
LabelInfoMaker label_info_maker_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(Adjuster);
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/courgette/assembly_program.cc b/courgette/assembly_program.cc
index 4a3a76c..6293bd0 100644
--- a/courgette/assembly_program.cc
+++ b/courgette/assembly_program.cc
@@ -22,6 +22,10 @@
using VECTOR = CONTAINER<Label*>;
LabelReceptor() = default;
+
+ LabelReceptor(const LabelReceptor&) = delete;
+ LabelReceptor& operator=(const LabelReceptor&) = delete;
+
~LabelReceptor() override = default;
VECTOR* mutable_abs32_vector() { return &abs32_vector_; }
@@ -51,8 +55,6 @@
private:
VECTOR abs32_vector_;
VECTOR rel32_vector_;
-
- DISALLOW_COPY_AND_ASSIGN(LabelReceptor);
};
} // namespace
diff --git a/courgette/assembly_program.h b/courgette/assembly_program.h
index 8f87f3e..22d3f2ee7 100644
--- a/courgette/assembly_program.h
+++ b/courgette/assembly_program.h
@@ -42,6 +42,10 @@
class AssemblyProgram {
public:
AssemblyProgram(ExecutableType kind, uint64_t image_base);
+
+ AssemblyProgram(const AssemblyProgram&) = delete;
+ AssemblyProgram& operator=(const AssemblyProgram&) = delete;
+
~AssemblyProgram();
ExecutableType kind() const { return kind_; }
@@ -89,8 +93,6 @@
// These are used by Label adjustment during patch generation.
std::vector<Label*> abs32_label_annotations_;
std::vector<Label*> rel32_label_annotations_;
-
- DISALLOW_COPY_AND_ASSIGN(AssemblyProgram);
};
} // namespace courgette
diff --git a/courgette/courgette_flow.h b/courgette/courgette_flow.h
index 8329742..b849e7c 100644
--- a/courgette/courgette_flow.h
+++ b/courgette/courgette_flow.h
@@ -23,6 +23,10 @@
class RegionBuffer : public BasicBuffer {
public:
explicit RegionBuffer(const Region& region) : region_(region) {}
+
+ RegionBuffer(const RegionBuffer&) = delete;
+ RegionBuffer& operator=(const RegionBuffer&) = delete;
+
~RegionBuffer() override {}
// BasicBuffer:
@@ -31,8 +35,6 @@
private:
Region region_;
-
- DISALLOW_COPY_AND_ASSIGN(RegionBuffer);
};
// CourgetteFlow stores Courgette data arranged into groups, and exposes
@@ -63,6 +65,10 @@
};
CourgetteFlow();
+
+ CourgetteFlow(const CourgetteFlow&) = delete;
+ CourgetteFlow& operator=(const CourgetteFlow&) = delete;
+
~CourgetteFlow();
static const char* name(Group group);
@@ -141,8 +147,6 @@
Data data_only_;
Data data_old_;
Data data_new_;
-
- DISALLOW_COPY_AND_ASSIGN(CourgetteFlow);
};
} // namespace courgette
diff --git a/courgette/courgette_tool.cc b/courgette/courgette_tool.cc
index 9d904a5..ce43de4 100644
--- a/courgette/courgette_tool.cc
+++ b/courgette/courgette_tool.cc
@@ -83,6 +83,10 @@
if (!buffer_.Initialize(file_name))
Problem("Can't read %s file.", kind);
}
+
+ BufferedFileReader(const BufferedFileReader&) = delete;
+ BufferedFileReader& operator=(const BufferedFileReader&) = delete;
+
~BufferedFileReader() override = default;
// courgette::BasicBuffer:
@@ -91,8 +95,6 @@
private:
base::MemoryMappedFile buffer_;
-
- DISALLOW_COPY_AND_ASSIGN(BufferedFileReader);
};
/******** Various helpers ********/
diff --git a/courgette/difference_estimator.h b/courgette/difference_estimator.h
index 690c8404..b43d5f7c 100644
--- a/courgette/difference_estimator.h
+++ b/courgette/difference_estimator.h
@@ -34,6 +34,10 @@
class DifferenceEstimator {
public:
DifferenceEstimator();
+
+ DifferenceEstimator(const DifferenceEstimator&) = delete;
+ DifferenceEstimator& operator=(const DifferenceEstimator&) = delete;
+
~DifferenceEstimator();
class Base;
@@ -53,7 +57,6 @@
private:
std::vector<Base*> owned_bases_;
std::vector<Subject*> owned_subjects_;
- DISALLOW_COPY_AND_ASSIGN(DifferenceEstimator);
};
} // namespace
diff --git a/courgette/disassembler.h b/courgette/disassembler.h
index 78a4005f..f3eb88e3 100644
--- a/courgette/disassembler.h
+++ b/courgette/disassembler.h
@@ -27,6 +27,10 @@
public:
RvaVisitor_Abs32(const std::vector<RVA>& rva_locations,
const AddressTranslator& translator);
+
+ RvaVisitor_Abs32(const RvaVisitor_Abs32&) = delete;
+ RvaVisitor_Abs32& operator=(const RvaVisitor_Abs32&) = delete;
+
~RvaVisitor_Abs32() override { }
// VectorRvaVisitor<RVA> interfaces.
@@ -34,8 +38,6 @@
private:
const AddressTranslator& translator_;
-
- DISALLOW_COPY_AND_ASSIGN(RvaVisitor_Abs32);
};
// Visitor/adaptor to translate RVA to target RVA for rel32.
@@ -43,6 +45,10 @@
public:
RvaVisitor_Rel32(const std::vector<RVA>& rva_locations,
const AddressTranslator& translator);
+
+ RvaVisitor_Rel32(const RvaVisitor_Rel32&) = delete;
+ RvaVisitor_Rel32& operator=(const RvaVisitor_Rel32&) = delete;
+
~RvaVisitor_Rel32() override { }
// VectorRvaVisitor<RVA> interfaces.
@@ -50,8 +56,6 @@
private:
const AddressTranslator& translator_;
-
- DISALLOW_COPY_AND_ASSIGN(RvaVisitor_Rel32);
};
virtual ~Disassembler();
diff --git a/courgette/disassembler_elf_32.h b/courgette/disassembler_elf_32.h
index fba67f1..a32b8e2 100644
--- a/courgette/disassembler_elf_32.h
+++ b/courgette/disassembler_elf_32.h
@@ -85,18 +85,22 @@
public:
Elf32RvaVisitor_Rel32(
const std::vector<std::unique_ptr<TypedRVA>>& rva_locations);
+
+ Elf32RvaVisitor_Rel32(const Elf32RvaVisitor_Rel32&) = delete;
+ Elf32RvaVisitor_Rel32& operator=(const Elf32RvaVisitor_Rel32&) = delete;
+
~Elf32RvaVisitor_Rel32() override { }
// VectorRvaVisitor<TypedRVA*> interfaces.
RVA Get() const override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(Elf32RvaVisitor_Rel32);
};
public:
DisassemblerElf32(const uint8_t* start, size_t length);
+ DisassemblerElf32(const DisassemblerElf32&) = delete;
+ DisassemblerElf32& operator=(const DisassemblerElf32&) = delete;
+
~DisassemblerElf32() override { }
// Disassembler interfaces.
@@ -240,9 +244,6 @@
// Sorted rel32 RVAs. This is mutable because ParseFile() temporarily sorts
// these by file offsets.
mutable std::vector<std::unique_ptr<TypedRVA>> rel32_locations_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DisassemblerElf32);
};
} // namespace courgette
diff --git a/courgette/disassembler_elf_32_x86.h b/courgette/disassembler_elf_32_x86.h
index 71e61ab..ad39307 100644
--- a/courgette/disassembler_elf_32_x86.h
+++ b/courgette/disassembler_elf_32_x86.h
@@ -39,6 +39,9 @@
DisassemblerElf32X86(const uint8_t* start, size_t length);
+ DisassemblerElf32X86(const DisassemblerElf32X86&) = delete;
+ DisassemblerElf32X86& operator=(const DisassemblerElf32X86&) = delete;
+
~DisassemblerElf32X86() override { }
// DisassemblerElf32 interfaces.
@@ -58,9 +61,6 @@
#if COURGETTE_HISTOGRAM_TARGETS
std::map<RVA, int> rel32_target_rvas_;
#endif
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DisassemblerElf32X86);
};
} // namespace courgette
diff --git a/courgette/disassembler_win32.h b/courgette/disassembler_win32.h
index da6a16d..c9b357c 100644
--- a/courgette/disassembler_win32.h
+++ b/courgette/disassembler_win32.h
@@ -25,6 +25,9 @@
class DisassemblerWin32 : public Disassembler {
public:
+ DisassemblerWin32(const DisassemblerWin32&) = delete;
+ DisassemblerWin32& operator=(const DisassemblerWin32&) = delete;
+
virtual ~DisassemblerWin32() = default;
// Disassembler interfaces.
@@ -153,9 +156,6 @@
std::map<RVA, int> abs32_target_rvas_;
std::map<RVA, int> rel32_target_rvas_;
#endif
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DisassemblerWin32);
};
} // namespace courgette
diff --git a/courgette/disassembler_win32_x64.h b/courgette/disassembler_win32_x64.h
index 837c745..c4d071e0 100644
--- a/courgette/disassembler_win32_x64.h
+++ b/courgette/disassembler_win32_x64.h
@@ -26,6 +26,10 @@
}
DisassemblerWin32X64(const uint8_t* start, size_t length);
+
+ DisassemblerWin32X64(const DisassemblerWin32X64&) = delete;
+ DisassemblerWin32X64& operator=(const DisassemblerWin32X64&) = delete;
+
~DisassemblerWin32X64() override = default;
// Disassembler interfaces.
@@ -47,9 +51,6 @@
uint16_t RelativeOffsetOfDataDirectories() const override {
return kOffsetOfDataDirectoryFromImageOptionalHeader64;
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DisassemblerWin32X64);
};
} // namespace courgette
diff --git a/courgette/disassembler_win32_x86.h b/courgette/disassembler_win32_x86.h
index 84813e6..67a46279 100644
--- a/courgette/disassembler_win32_x86.h
+++ b/courgette/disassembler_win32_x86.h
@@ -26,6 +26,10 @@
}
DisassemblerWin32X86(const uint8_t* start, size_t length);
+
+ DisassemblerWin32X86(const DisassemblerWin32X86&) = delete;
+ DisassemblerWin32X86& operator=(const DisassemblerWin32X86&) = delete;
+
~DisassemblerWin32X86() override = default;
// Disassembler interfaces.
@@ -47,9 +51,6 @@
uint16_t RelativeOffsetOfDataDirectories() const override {
return kOffsetOfDataDirectoryFromImageOptionalHeader32;
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DisassemblerWin32X86);
};
} // namespace courgette
diff --git a/courgette/encoded_program.h b/courgette/encoded_program.h
index b814cbb..3558039 100644
--- a/courgette/encoded_program.h
+++ b/courgette/encoded_program.h
@@ -44,6 +44,10 @@
class EncodedProgram {
public:
EncodedProgram();
+
+ EncodedProgram(const EncodedProgram&) = delete;
+ EncodedProgram& operator=(const EncodedProgram&) = delete;
+
~EncodedProgram();
// Generating an EncodedProgram:
@@ -138,8 +142,6 @@
// Table of the addresses containing abs32 relocations; computed during
// assembly, used to generate base relocation table.
UInt32Vector abs32_relocs_;
-
- DISALLOW_COPY_AND_ASSIGN(EncodedProgram);
};
// Deserializes program from a stream set to |*output|. Returns C_OK if
diff --git a/courgette/ensemble.h b/courgette/ensemble.h
index adb4b079..8597901 100644
--- a/courgette/ensemble.h
+++ b/courgette/ensemble.h
@@ -41,6 +41,9 @@
Ensemble* ensemble,
const Region& region);
+ Element(const Element&) = delete;
+ Element& operator=(const Element&) = delete;
+
virtual ~Element();
ExecutableType kind() const { return kind_; }
@@ -57,8 +60,6 @@
ExecutableType kind_;
Ensemble* ensemble_;
Region region_;
-
- DISALLOW_COPY_AND_ASSIGN(Element);
};
@@ -66,6 +67,10 @@
public:
Ensemble(const Region& region, const char* name)
: region_(region), name_(name) {}
+
+ Ensemble(const Ensemble&) = delete;
+ Ensemble& operator=(const Ensemble&) = delete;
+
~Ensemble();
const Region& region() const { return region_; }
@@ -85,8 +90,6 @@
std::vector<Element*> elements_; // Embedded elements discovered.
std::vector<Element*> owned_elements_; // For deallocation.
-
- DISALLOW_COPY_AND_ASSIGN(Ensemble);
};
inline size_t Element::offset_in_ensemble() const {
diff --git a/courgette/ensemble_apply.cc b/courgette/ensemble_apply.cc
index 54fccb5d..0711670 100644
--- a/courgette/ensemble_apply.cc
+++ b/courgette/ensemble_apply.cc
@@ -30,6 +30,10 @@
class EnsemblePatchApplication {
public:
EnsemblePatchApplication();
+
+ EnsemblePatchApplication(const EnsemblePatchApplication&) = delete;
+ EnsemblePatchApplication& operator=(const EnsemblePatchApplication&) = delete;
+
~EnsemblePatchApplication() = default;
Status ReadHeader(SourceStream* header_stream);
@@ -76,8 +80,6 @@
SinkStream corrected_parameters_storage_;
SinkStream corrected_elements_storage_;
-
- DISALLOW_COPY_AND_ASSIGN(EnsemblePatchApplication);
};
EnsemblePatchApplication::EnsemblePatchApplication()
diff --git a/courgette/instruction_utils.h b/courgette/instruction_utils.h
index 9b201dce7..31aa4e8 100644
--- a/courgette/instruction_utils.h
+++ b/courgette/instruction_utils.h
@@ -18,6 +18,10 @@
class InstructionReceptor {
public:
InstructionReceptor() = default;
+
+ InstructionReceptor(const InstructionReceptor&) = delete;
+ InstructionReceptor& operator=(const InstructionReceptor&) = delete;
+
virtual ~InstructionReceptor() = default;
// Generates an entire base relocation table.
@@ -43,9 +47,6 @@
// Generates an 8-byte absolute reference to address of 'label'.
virtual CheckBool EmitAbs64(Label* label) = 0;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(InstructionReceptor);
};
// A rerunable callback that emit instructions to a provided receptor. Returns
diff --git a/courgette/label_manager.h b/courgette/label_manager.h
index 4b252405..dc0e2ac 100644
--- a/courgette/label_manager.h
+++ b/courgette/label_manager.h
@@ -50,6 +50,10 @@
class SimpleIndexAssigner {
public:
explicit SimpleIndexAssigner(LabelVector* labels);
+
+ SimpleIndexAssigner(const SimpleIndexAssigner&) = delete;
+ SimpleIndexAssigner& operator=(const SimpleIndexAssigner&) = delete;
+
~SimpleIndexAssigner();
// Scans forward to assign successive indexes to Labels, using existing
@@ -73,8 +77,6 @@
// Tracker for index usage to ensure uniqueness of indexes.
std::vector<bool> available_;
-
- DISALLOW_COPY_AND_ASSIGN(SimpleIndexAssigner);
};
LabelManager();
diff --git a/courgette/streams.h b/courgette/streams.h
index a0de9e6..60f5d607 100644
--- a/courgette/streams.h
+++ b/courgette/streams.h
@@ -129,6 +129,10 @@
class SinkStream {
public:
SinkStream() {}
+
+ SinkStream(const SinkStream&) = delete;
+ SinkStream& operator=(const SinkStream&) = delete;
+
~SinkStream() {}
// Appends |byte_count| bytes from |data| to the stream.
@@ -169,14 +173,16 @@
private:
NoThrowBuffer<char> buffer_;
-
- DISALLOW_COPY_AND_ASSIGN(SinkStream);
};
// A SourceStreamSet is a set of SourceStreams.
class SourceStreamSet {
public:
SourceStreamSet();
+
+ SourceStreamSet(const SourceStreamSet&) = delete;
+ SourceStreamSet& operator=(const SourceStreamSet&) = delete;
+
~SourceStreamSet();
// Initializes the SourceStreamSet with the stream data in memory at |source|.
@@ -205,8 +211,6 @@
private:
size_t count_;
SourceStream streams_[kMaxStreams];
-
- DISALLOW_COPY_AND_ASSIGN(SourceStreamSet);
};
// A SinkStreamSet is a set of SinkStreams. Data is collected by writing to the
@@ -217,6 +221,10 @@
class SinkStreamSet {
public:
SinkStreamSet();
+
+ SinkStreamSet(const SinkStreamSet&) = delete;
+ SinkStreamSet& operator=(const SinkStreamSet&) = delete;
+
~SinkStreamSet();
// Initializes the SinkStreamSet to have |stream_index_limit| streams. Must
@@ -243,8 +251,6 @@
size_t count_;
SinkStream streams_[kMaxStreams];
-
- DISALLOW_COPY_AND_ASSIGN(SinkStreamSet);
};
} // namespace courgette