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

Unified Diff: tools/ipc_fuzzer/fuzzer/fuzzer.cc

Issue 2972773004: Remove ScopedVector from tools/ipc_fuzzer/. (Closed)
Patch Set: rev Created 3 years, 5 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 | « tools/ipc_fuzzer/fuzzer/fuzzer.h ('k') | tools/ipc_fuzzer/fuzzer/fuzzer_main.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/ipc_fuzzer/fuzzer/fuzzer.cc
diff --git a/tools/ipc_fuzzer/fuzzer/fuzzer.cc b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
index 46e26a760c5a4702563d5d13976e28e6d05ba612..64056b0b9ab521b0c87f7e737cbad71cfcc472c7 100644
--- a/tools/ipc_fuzzer/fuzzer/fuzzer.cc
+++ b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
@@ -1136,8 +1136,8 @@ struct FuzzTraits<HWND> {
#endif
template <>
-struct FuzzTraits<IPC::Message> {
- static bool Fuzz(IPC::Message* p, Fuzzer* fuzzer) {
+struct FuzzTraits<std::unique_ptr<IPC::Message>> {
+ static bool Fuzz(std::unique_ptr<IPC::Message>* p, Fuzzer* fuzzer) {
// TODO(mbarbella): Support mutation.
if (!fuzzer->ShouldGenerate())
return true;
@@ -1145,10 +1145,11 @@ struct FuzzTraits<IPC::Message> {
if (g_function_vector.empty())
return false;
size_t index = RandInRange(g_function_vector.size());
- IPC::Message* ipc_message = (*g_function_vector[index])(NULL, fuzzer);
+ std::unique_ptr<IPC::Message> ipc_message =
+ (*g_function_vector[index])(nullptr, fuzzer);
if (!ipc_message)
return false;
- p = ipc_message;
+ *p = std::move(ipc_message);
return true;
}
};
@@ -1734,8 +1735,8 @@ template <typename Message>
class MessageFactory<Message, IPC::MessageKind::CONTROL> {
public:
template <typename... Args>
- static Message* New(const Args&... args) {
- return new Message(args...);
+ static std::unique_ptr<Message> New(const Args&... args) {
+ return base::MakeUnique<Message>(args...);
}
};
@@ -1743,8 +1744,8 @@ template <typename Message>
class MessageFactory<Message, IPC::MessageKind::ROUTED> {
public:
template <typename... Args>
- static Message* New(const Args&... args) {
- return new Message(RandInRange(MAX_FAKE_ROUTING_ID), args...);
+ static std::unique_ptr<Message> New(const Args&... args) {
+ return base::MakeUnique<Message>(RandInRange(MAX_FAKE_ROUTING_ID), args...);
}
};
@@ -1756,15 +1757,15 @@ class FuzzerHelper<IPC::MessageT<Meta, std::tuple<Ins...>, void>> {
public:
using Message = IPC::MessageT<Meta, std::tuple<Ins...>, void>;
- static IPC::Message* Fuzz(IPC::Message* msg, Fuzzer* fuzzer) {
+ static std::unique_ptr<IPC::Message> Fuzz(IPC::Message* msg, Fuzzer* fuzzer) {
return FuzzImpl(msg, fuzzer, base::MakeIndexSequence<sizeof...(Ins)>());
}
private:
template <size_t... Ns>
- static IPC::Message* FuzzImpl(IPC::Message* msg,
- Fuzzer* fuzzer,
- base::IndexSequence<Ns...>) {
+ static std::unique_ptr<IPC::Message> FuzzImpl(IPC::Message* msg,
+ Fuzzer* fuzzer,
+ base::IndexSequence<Ns...>) {
typename Message::Param p;
if (msg) {
Message::Read(static_cast<Message*>(msg), &p);
@@ -1783,18 +1784,18 @@ class FuzzerHelper<
public:
using Message = IPC::MessageT<Meta, std::tuple<Ins...>, std::tuple<Outs...>>;
- static IPC::Message* Fuzz(IPC::Message* msg, Fuzzer* fuzzer) {
+ static std::unique_ptr<IPC::Message> Fuzz(IPC::Message* msg, Fuzzer* fuzzer) {
return FuzzImpl(msg, fuzzer, base::MakeIndexSequence<sizeof...(Ins)>());
}
private:
template <size_t... Ns>
- static IPC::Message* FuzzImpl(IPC::Message* msg,
- Fuzzer* fuzzer,
- base::IndexSequence<Ns...>) {
+ static std::unique_ptr<IPC::Message> FuzzImpl(IPC::Message* msg,
+ Fuzzer* fuzzer,
+ base::IndexSequence<Ns...>) {
typename Message::SendParam p;
Message* real_msg = static_cast<Message*>(msg);
- Message* new_msg = nullptr;
+ std::unique_ptr<Message> new_msg;
if (real_msg) {
Message::ReadSendParam(real_msg, &p);
}
@@ -1803,7 +1804,7 @@ class FuzzerHelper<
std::get<Ns>(p)..., static_cast<Outs*>(nullptr)...);
}
if (real_msg && new_msg) {
- MessageCracker::CopyMessageID(new_msg, real_msg);
+ MessageCracker::CopyMessageID(new_msg.get(), real_msg);
} else if (!new_msg) {
std::cerr << "Don't know how to handle " << Meta::kName << "\n";
}
« no previous file with comments | « tools/ipc_fuzzer/fuzzer/fuzzer.h ('k') | tools/ipc_fuzzer/fuzzer/fuzzer_main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698