Index: components/feedback/feedback_common.cc |
diff --git a/components/feedback/feedback_common.cc b/components/feedback/feedback_common.cc |
index d685551394ea55d571909f1dcd9ebd2172d93158..b658d70411df49c1b3e43523e4c3d182b509ef18 100644 |
--- a/components/feedback/feedback_common.cc |
+++ b/components/feedback/feedback_common.cc |
@@ -6,6 +6,7 @@ |
#include <utility> |
+#include "base/memory/ptr_util.h" |
#include "base/strings/string_util.h" |
#include "components/feedback/proto/common.pb.h" |
#include "components/feedback/proto/dom.pb.h" |
@@ -34,8 +35,11 @@ const char kArbitraryMimeType[] = "application/octet-stream"; |
// with the report. This method only converts those logs that we want in |
// the compressed zip file sent with the report, hence it ignores any logs |
// below the size threshold of what we want compressed. |
-std::string* LogsToString(const FeedbackCommon::SystemLogsMap& sys_info) { |
- std::string* syslogs_string = new std::string; |
+// TODO(dcheng): This should probably just take advantage of string's move |
+// constructor. |
+std::unique_ptr<std::string> LogsToString( |
dcheng
2016/04/26 00:11:41
I rewrote some bonus things in this file, because
|
+ const FeedbackCommon::SystemLogsMap& sys_info) { |
+ std::unique_ptr<std::string> syslogs_string(new std::string); |
for (FeedbackCommon::SystemLogsMap::const_iterator it = sys_info.begin(); |
it != sys_info.end(); |
++it) { |
@@ -90,7 +94,7 @@ void AddAttachment(userfeedback::ExtensionSubmit* feedback_data, |
} // namespace |
FeedbackCommon::AttachedFile::AttachedFile(const std::string& filename, |
- scoped_ptr<std::string> data) |
+ std::unique_ptr<std::string> data) |
: name(filename), data(std::move(data)) {} |
FeedbackCommon::AttachedFile::~AttachedFile() {} |
@@ -112,36 +116,34 @@ bool FeedbackCommon::BelowCompressionThreshold(const std::string& content) { |
void FeedbackCommon::CompressFile(const base::FilePath& filename, |
const std::string& zipname, |
- scoped_ptr<std::string> data) { |
- AttachedFile* file = new AttachedFile( |
- zipname, scoped_ptr<std::string>(new std::string())); |
+ std::unique_ptr<std::string> data) { |
+ std::unique_ptr<AttachedFile> file( |
+ new AttachedFile(zipname, base::WrapUnique(new std::string()))); |
if (file->name.empty()) { |
// We need to use the UTF8Unsafe methods here to accomodate Windows, which |
// uses wide strings to store filepaths. |
file->name = filename.BaseName().AsUTF8Unsafe(); |
file->name.append(kZipExt); |
} |
- if (feedback_util::ZipString(filename, *(data.get()), file->data.get())) { |
+ if (feedback_util::ZipString(filename, *data, file->data.get())) { |
base::AutoLock lock(attachments_lock_); |
- attachments_.push_back(file); |
- } else { |
- delete file; |
+ attachments_.push_back(file.release()); |
} |
} |
void FeedbackCommon::AddFile(const std::string& filename, |
- scoped_ptr<std::string> data) { |
+ std::unique_ptr<std::string> data) { |
base::AutoLock lock(attachments_lock_); |
attachments_.push_back(new AttachedFile(filename, std::move(data))); |
} |
void FeedbackCommon::AddLog(const std::string& name, const std::string& value) { |
if (!logs_.get()) |
- logs_ = scoped_ptr<SystemLogsMap>(new SystemLogsMap); |
- (*logs_.get())[name] = value; |
+ logs_ = base::WrapUnique(new SystemLogsMap); |
+ (*logs_)[name] = value; |
} |
-void FeedbackCommon::AddLogs(scoped_ptr<SystemLogsMap> logs) { |
+void FeedbackCommon::AddLogs(std::unique_ptr<SystemLogsMap> logs) { |
if (logs_) { |
logs_->insert(logs->begin(), logs->end()); |
} else { |
@@ -152,11 +154,11 @@ void FeedbackCommon::AddLogs(scoped_ptr<SystemLogsMap> logs) { |
void FeedbackCommon::CompressLogs() { |
if (!logs_) |
return; |
- std::string* logs = LogsToString(*logs_.get()); |
- if (!logs->empty()) |
- CompressFile( |
- base::FilePath(kLogsFilename), kLogsAttachmentName, |
- scoped_ptr<std::string>(logs)); |
+ std::unique_ptr<std::string> logs = LogsToString(*logs_); |
+ if (!logs->empty()) { |
+ CompressFile(base::FilePath(kLogsFilename), kLogsAttachmentName, |
+ std::move(logs)); |
+ } |
} |
void FeedbackCommon::AddFilesAndLogsToReport( |