Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Unified Diff: courgette/ensemble_apply.cc

Issue 1969543002: Unified usage of vector<unique_ptr<T>> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Format Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « courgette/disassembler_elf_32_x86_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: courgette/ensemble_apply.cc
diff --git a/courgette/ensemble_apply.cc b/courgette/ensemble_apply.cc
index f740ba98e3a520a25689e75cfe35eac23f029f11..8ed9cbd9f5d0b4cacc9daff1bba16defe23630ed 100644
--- a/courgette/ensemble_apply.cc
+++ b/courgette/ensemble_apply.cc
@@ -9,6 +9,9 @@
#include <stddef.h>
#include <stdint.h>
+#include <memory>
+#include <utility>
+
#include "base/files/file_util.h"
#include "base/files/memory_mapped_file.h"
#include "base/logging.h"
@@ -26,7 +29,7 @@ namespace courgette {
class EnsemblePatchApplication {
public:
EnsemblePatchApplication();
- ~EnsemblePatchApplication();
+ ~EnsemblePatchApplication() = default;
Status ReadHeader(SourceStream* header_stream);
@@ -68,7 +71,7 @@ class EnsemblePatchApplication {
uint32_t target_checksum_;
uint32_t final_patch_input_size_prediction_;
- std::vector<TransformationPatcher*> patchers_;
+ std::vector<std::unique_ptr<TransformationPatcher>> patchers_;
SinkStream corrected_parameters_storage_;
SinkStream corrected_elements_storage_;
@@ -81,12 +84,6 @@ EnsemblePatchApplication::EnsemblePatchApplication()
final_patch_input_size_prediction_(0) {
}
-EnsemblePatchApplication::~EnsemblePatchApplication() {
- for (size_t i = 0; i < patchers_.size(); ++i) {
- delete patchers_[i];
- }
-}
-
Status EnsemblePatchApplication::ReadHeader(SourceStream* header_stream) {
uint32_t magic;
if (!header_stream->ReadVarint32(&magic))
@@ -138,28 +135,21 @@ Status EnsemblePatchApplication::ReadInitialParameters(
if (!transformation_parameters->ReadVarint32(&kind))
return C_BAD_ENSEMBLE_HEADER;
- TransformationPatcher* patcher = NULL;
+ std::unique_ptr<TransformationPatcher> patcher;
- switch (kind)
- {
- case EXE_WIN_32_X86:
- patcher = new PatcherX86_32(base_region_);
- break;
+ switch (kind) {
+ case EXE_WIN_32_X86: // Fall through.
case EXE_ELF_32_X86:
- patcher = new PatcherX86_32(base_region_);
- break;
case EXE_ELF_32_ARM:
- patcher = new PatcherX86_32(base_region_);
- break;
case EXE_WIN_32_X64:
- patcher = new PatcherX86_32(base_region_);
+ patcher.reset(new PatcherX86_32(base_region_));
break;
+ default:
+ return C_BAD_ENSEMBLE_HEADER;
}
- if (patcher)
- patchers_.push_back(patcher);
- else
- return C_BAD_ENSEMBLE_HEADER;
+ DCHECK(patcher);
+ patchers_.push_back(std::move(patcher));
}
for (size_t i = 0; i < patchers_.size(); ++i) {
« no previous file with comments | « courgette/disassembler_elf_32_x86_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698