| Index: base/shared_memory.h
 | 
| diff --git a/base/shared_memory.h b/base/shared_memory.h
 | 
| index 3bfa003aa203ccd30eb8c45de52d395fc1a9d5a0..b44367a7fcc875e16e91e6e486f73c0316debd15 100644
 | 
| --- a/base/shared_memory.h
 | 
| +++ b/base/shared_memory.h
 | 
| @@ -9,6 +9,7 @@
 | 
|  
 | 
|  #if defined(OS_POSIX)
 | 
|  #include <semaphore.h>
 | 
| +#include "base/file_descriptor_posix.h"
 | 
|  #endif
 | 
|  #include <string>
 | 
|  
 | 
| @@ -23,7 +24,7 @@ namespace base {
 | 
|  typedef HANDLE SharedMemoryHandle;
 | 
|  typedef HANDLE SharedMemoryLock;
 | 
|  #elif defined(OS_POSIX)
 | 
| -typedef int SharedMemoryHandle;
 | 
| +typedef FileDescriptor SharedMemoryHandle;
 | 
|  // On POSIX, the lock is implemented as a lockf() on the mapped file,
 | 
|  // so no additional member (or definition of SharedMemoryLock) is
 | 
|  // needed.
 | 
| @@ -49,6 +50,10 @@ class SharedMemory {
 | 
|    // Destructor.  Will close any open files.
 | 
|    ~SharedMemory();
 | 
|  
 | 
| +  // Return true iff the given handle is valid (i.e. not the distingished
 | 
| +  // invalid value; NULL for a HANDLE and -1 for a file descriptor)
 | 
| +  static bool IsHandleValid(const SharedMemoryHandle& handle);
 | 
| +
 | 
|    // Creates or opens a shared memory segment based on a name.
 | 
|    // If read_only is true, opens the memory as read-only.
 | 
|    // If open_existing is true, and the shared memory already exists,
 | 
| @@ -92,7 +97,7 @@ class SharedMemory {
 | 
|    // Get access to the underlying OS handle for this segment.
 | 
|    // Use of this handle for anything other than an opaque
 | 
|    // identifier is not portable.
 | 
| -  SharedMemoryHandle handle() const { return mapped_file_; }
 | 
| +  SharedMemoryHandle handle() const;
 | 
|  
 | 
|    // Closes the open shared memory segment.
 | 
|    // It is safe to call Close repeatedly.
 | 
| @@ -147,7 +152,11 @@ class SharedMemory {
 | 
|                              bool close_self);
 | 
|  
 | 
|    std::wstring       name_;
 | 
| -  SharedMemoryHandle mapped_file_;
 | 
| +#if defined(OS_WIN)
 | 
| +  HANDLE mapped_file_;
 | 
| +#elif defined(OS_POSIX)
 | 
| +  int mapped_file_;
 | 
| +#endif
 | 
|    void*              memory_;
 | 
|    bool               read_only_;
 | 
|    size_t             max_size_;
 | 
| 
 |