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

Side by Side Diff: content/child/child_shared_bitmap_manager.cc

Issue 2544953002: content: Some code cleanup related to shared memory allocation. (Closed)
Patch Set: . Created 4 years 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 unified diff | Download patch
« no previous file with comments | « content/child/blob_storage/webblobregistry_impl.cc ('k') | content/child/child_thread_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/child/child_shared_bitmap_manager.h" 5 #include "content/child/child_shared_bitmap_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 std::unique_ptr<cc::SharedBitmap> 96 std::unique_ptr<cc::SharedBitmap>
97 ChildSharedBitmapManager::AllocateSharedBitmap(const gfx::Size& size) { 97 ChildSharedBitmapManager::AllocateSharedBitmap(const gfx::Size& size) {
98 TRACE_EVENT2("renderer", 98 TRACE_EVENT2("renderer",
99 "ChildSharedBitmapManager::AllocateSharedMemoryBitmap", "width", 99 "ChildSharedBitmapManager::AllocateSharedMemoryBitmap", "width",
100 size.width(), "height", size.height()); 100 size.width(), "height", size.height());
101 size_t memory_size; 101 size_t memory_size;
102 if (!cc::SharedBitmap::SizeInBytes(size, &memory_size)) 102 if (!cc::SharedBitmap::SizeInBytes(size, &memory_size))
103 return std::unique_ptr<SharedMemoryBitmap>(); 103 return std::unique_ptr<SharedMemoryBitmap>();
104 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); 104 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId();
105 bool out_of_memory = false;
106 std::unique_ptr<base::SharedMemory> memory = 105 std::unique_ptr<base::SharedMemory> memory =
107 ChildThreadImpl::AllocateSharedMemory(memory_size, nullptr, 106 ChildThreadImpl::AllocateSharedMemory(memory_size);
108 &out_of_memory); 107 if (!memory || !memory->Map(memory_size))
109 if (!memory) {
110 if (out_of_memory) {
111 CollectMemoryUsageAndDie(size, memory_size);
112 } else {
113 // Callers of this method are not prepared to handle failures during
114 // shutdown. Exit immediately. This is expected behavior during the Fast
115 // Shutdown path, so use EXIT_SUCCESS. https://crbug.com/615121.
116 exit(EXIT_SUCCESS);
117 }
118 }
119
120 if (!memory->Map(memory_size))
121 CollectMemoryUsageAndDie(size, memory_size); 108 CollectMemoryUsageAndDie(size, memory_size);
122 109
123 NotifyAllocatedSharedBitmap(memory.get(), id); 110 NotifyAllocatedSharedBitmap(memory.get(), id);
124 111
125 // Close the associated FD to save resources, the previously mapped memory 112 // Close the associated FD to save resources, the previously mapped memory
126 // remains available. 113 // remains available.
127 memory->Close(); 114 memory->Close();
128 115
129 return base::MakeUnique<ChildSharedBitmap>(render_message_filter_ptr_, 116 return base::MakeUnique<ChildSharedBitmap>(render_message_filter_ptr_,
130 std::move(memory), id); 117 std::move(memory), id);
(...skipping 27 matching lines...) Expand all
158 } 145 }
159 146
160 mojo::ScopedSharedBufferHandle buffer_handle = mojo::WrapSharedMemoryHandle( 147 mojo::ScopedSharedBufferHandle buffer_handle = mojo::WrapSharedMemoryHandle(
161 handle_to_send, memory->mapped_size(), true /* read_only */); 148 handle_to_send, memory->mapped_size(), true /* read_only */);
162 149
163 (*render_message_filter_ptr_) 150 (*render_message_filter_ptr_)
164 ->AllocatedSharedBitmap(std::move(buffer_handle), id); 151 ->AllocatedSharedBitmap(std::move(buffer_handle), id);
165 } 152 }
166 153
167 } // namespace content 154 } // namespace content
OLDNEW
« no previous file with comments | « content/child/blob_storage/webblobregistry_impl.cc ('k') | content/child/child_thread_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698