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

Side by Side Diff: base/memory/shared_memory_posix.cc

Issue 1143243007: Extract some logic from transport_dib into shared_memory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix inverted conditional. Created 5 years, 6 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 unified diff | Download patch
« no previous file with comments | « base/memory/shared_memory.h ('k') | ui/surface/transport_dib_posix.cc » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/memory/shared_memory.h" 5 #include "base/memory/shared_memory.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <sys/mman.h> 9 #include <sys/mman.h>
10 #include <sys/stat.h> 10 #include <sys/stat.h>
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 if (duped_handle < 0) 192 if (duped_handle < 0)
193 return base::SharedMemory::NULLHandle(); 193 return base::SharedMemory::NULLHandle();
194 return base::FileDescriptor(duped_handle, clean_up_resources_on_destruction); 194 return base::FileDescriptor(duped_handle, clean_up_resources_on_destruction);
195 } 195 }
196 196
197 bool SharedMemory::CreateAndMapAnonymous(size_t size) { 197 bool SharedMemory::CreateAndMapAnonymous(size_t size) {
198 return CreateAnonymous(size) && Map(size); 198 return CreateAnonymous(size) && Map(size);
199 } 199 }
200 200
201 #if !defined(OS_ANDROID) 201 #if !defined(OS_ANDROID)
202 // static
203 int SharedMemory::GetSizeFromSharedMemoryHandle(
204 const SharedMemoryHandle& handle) {
205 struct stat st;
206 if (fstat(handle.fd, &st) != 0)
207 return -1;
208 return st.st_size;
209 }
210
202 // Chromium mostly only uses the unique/private shmem as specified by 211 // Chromium mostly only uses the unique/private shmem as specified by
203 // "name == L"". The exception is in the StatsTable. 212 // "name == L"". The exception is in the StatsTable.
204 // TODO(jrg): there is no way to "clean up" all unused named shmem if 213 // TODO(jrg): there is no way to "clean up" all unused named shmem if
205 // we restart from a crash. (That isn't a new problem, but it is a problem.) 214 // we restart from a crash. (That isn't a new problem, but it is a problem.)
206 // In case we want to delete it later, it may be useful to save the value 215 // In case we want to delete it later, it may be useful to save the value
207 // of mem_filename after FilePathForMemoryName(). 216 // of mem_filename after FilePathForMemoryName().
208 bool SharedMemory::Create(const SharedMemoryCreateOptions& options) { 217 bool SharedMemory::Create(const SharedMemoryCreateOptions& options) {
209 // TODO(erikchen): Remove ScopedTracker below once http://crbug.com/466437 218 // TODO(erikchen): Remove ScopedTracker below once http://crbug.com/466437
210 // is fixed. 219 // is fixed.
211 tracked_objects::ScopedTracker tracking_profile1( 220 tracked_objects::ScopedTracker tracking_profile1(
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 551
543 if (close_self) { 552 if (close_self) {
544 Unmap(); 553 Unmap();
545 Close(); 554 Close();
546 } 555 }
547 556
548 return true; 557 return true;
549 } 558 }
550 559
551 } // namespace base 560 } // namespace base
OLDNEW
« no previous file with comments | « base/memory/shared_memory.h ('k') | ui/surface/transport_dib_posix.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698