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

Unified Diff: media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc

Issue 2371783002: Remove stl_util's deletion functions from media/. (Closed)
Patch Set: just the count Created 4 years, 3 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
Index: media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
diff --git a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
index eabded5d1d7d8652d8b63d49f33815a6a22dd7d1..b1fee38d3aee06c488dce19f2125dfa43034148a 100644
--- a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
+++ b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
@@ -12,9 +12,9 @@
#include "base/bind.h"
#include "base/containers/hash_tables.h"
#include "base/logging.h"
+#include "base/memory/ptr_util.h"
#include "base/memory/shared_memory.h"
#include "base/single_thread_task_runner.h"
-#include "base/stl_util.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
@@ -158,7 +158,8 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter {
DCHECK(io_task_runner_->BelongsToCurrentThread());
DCHECK(client_map_.count(route_id) == 0);
- client_map_[route_id] = client;
+ // See the comment on GpuJpegDecodeAccelerator::AddClient.
+ client_map_[route_id] = base::WrapUnique(client);
response.Run(true);
}
@@ -166,17 +167,17 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter {
DCHECK(io_task_runner_->BelongsToCurrentThread());
const auto& it = client_map_.find(*route_id);
DCHECK(it != client_map_.end());
- Client* client = it->second;
+ std::unique_ptr<Client> client = std::move(it->second);
DCHECK(client);
client_map_.erase(it);
child_task_runner_->PostTask(
- FROM_HERE, base::Bind(&MessageFilter::DestroyClient, this, client));
+ FROM_HERE,
+ base::Bind(&MessageFilter::DestroyClient, this, base::Passed(&client)));
}
- void DestroyClient(Client* client) {
+ void DestroyClient(std::unique_ptr<Client> client) {
DCHECK(child_task_runner_->BelongsToCurrentThread());
- delete client;
if (owner_)
wolenetz 2016/09/27 22:01:12 nit: include a comment here like on l.273, too?
Avi (use Gerrit) 2016/09/28 15:41:46 Done.
owner_->ClientRemoved();
}
@@ -241,7 +242,7 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter {
base::Bind(DecodeFinished, base::Passed(&output_shm)));
DCHECK_GT(client_map_.count(*route_id), 0u);
- Client* client = client_map_[*route_id];
+ Client* client = client_map_[*route_id].get();
client->Decode(params.input_buffer, frame);
}
@@ -251,7 +252,7 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter {
return;
if (child_task_runner_->BelongsToCurrentThread()) {
- base::STLDeleteValues(&client_map_);
+ client_map_.clear();
} else {
// Make sure |Client| are deleted on child thread.
std::unique_ptr<ClientMap> client_map(new ClientMap);
@@ -264,12 +265,12 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter {
}
private:
- using ClientMap = base::hash_map<int32_t, Client*>;
+ using ClientMap = base::hash_map<int32_t, std::unique_ptr<Client>>;
// Must be static because this method runs after destructor.
static void DeleteClientMapOnChildThread(
std::unique_ptr<ClientMap> client_map) {
- base::STLDeleteValues(client_map.get());
+ // |client_map| is cleared when the scope of this function is left.
}
base::WeakPtr<GpuJpegDecodeAccelerator> owner_;

Powered by Google App Engine
This is Rietveld 408576698