Index: base/memory/shared_memory_handle.h |
diff --git a/base/memory/shared_memory_handle.h b/base/memory/shared_memory_handle.h |
index 5befcdd6b59f42c50a4ca905c0da28291706b4ca..8eff26b9dcaa811e75326b59d72a632e6bf0e2bf 100644 |
--- a/base/memory/shared_memory_handle.h |
+++ b/base/memory/shared_memory_handle.h |
@@ -14,9 +14,7 @@ |
#include "base/process/process_handle.h" |
#elif defined(OS_MACOSX) && !defined(OS_IOS) |
#include <mach/mach.h> |
-#include <sys/types.h> |
#include "base/base_export.h" |
-#include "base/file_descriptor_posix.h" |
#include "base/macros.h" |
#include "base/process/process_handle.h" |
#elif defined(OS_POSIX) |
@@ -87,32 +85,9 @@ class BASE_EXPORT SharedMemoryHandle { |
#else |
class BASE_EXPORT SharedMemoryHandle { |
public: |
- // The values of these enums must not change, as they are used by the |
- // histogram OSX.SharedMemory.Mechanism. |
- enum Type { |
- // The SharedMemoryHandle is backed by a POSIX fd. |
- POSIX, |
- // The SharedMemoryHandle is backed by the Mach primitive "memory object". |
- MACH, |
- }; |
- static const int TypeMax = 2; |
- |
- // The format that should be used to transmit |Type| over the wire. |
- typedef int TypeWireFormat; |
- |
// The default constructor returns an invalid SharedMemoryHandle. |
SharedMemoryHandle(); |
- // Constructs a SharedMemoryHandle backed by the components of a |
- // FileDescriptor. The newly created instance has the same ownership semantics |
- // as base::FileDescriptor. This typically means that the SharedMemoryHandle |
- // takes ownership of the |fd| if |auto_close| is true. Unfortunately, it's |
- // common for existing code to make shallow copies of SharedMemoryHandle, and |
- // the one that is finally passed into a base::SharedMemory is the one that |
- // "consumes" the fd. |
- explicit SharedMemoryHandle(const base::FileDescriptor& file_descriptor); |
- SharedMemoryHandle(int fd, bool auto_close); |
- |
// Makes a Mach-based SharedMemoryHandle of the given size. On error, |
// subsequent calls to IsValid() return false. |
explicit SharedMemoryHandle(mach_vm_size_t size); |
@@ -138,28 +113,16 @@ class BASE_EXPORT SharedMemoryHandle { |
bool operator==(const SharedMemoryHandle& handle) const; |
bool operator!=(const SharedMemoryHandle& handle) const; |
- // Returns the type. |
- Type GetType() const; |
- |
// Whether the underlying OS primitive is valid. Once the SharedMemoryHandle |
// is backed by a valid OS primitive, it becomes immutable. |
bool IsValid() const; |
- // Sets the POSIX fd backing the SharedMemoryHandle. Requires that the |
- // SharedMemoryHandle be backed by a POSIX fd. |
- void SetFileHandle(int fd, bool auto_close); |
- |
- // This method assumes that the SharedMemoryHandle is backed by a POSIX fd. |
- // This is eventually no longer going to be true, so please avoid adding new |
- // uses of this method. |
- const FileDescriptor GetFileDescriptor() const; |
- |
// Exposed so that the SharedMemoryHandle can be transported between |
// processes. |
mach_port_t GetMemoryObject() const; |
// Returns false on a failure to determine the size. On success, populates the |
- // output variable |size|. |
+ // output variable |size|. Returns 0 if the handle is invalid. |
bool GetSize(size_t* size) const; |
// The SharedMemoryHandle must be valid. |
@@ -178,31 +141,21 @@ class BASE_EXPORT SharedMemoryHandle { |
// Shared code between copy constructor and operator=. |
void CopyRelevantData(const SharedMemoryHandle& handle); |
- Type type_; |
- |
- // Each instance of a SharedMemoryHandle is backed either by a POSIX fd or a |
- // mach port. |type_| determines the backing member. |
- union { |
- FileDescriptor file_descriptor_; |
- |
- struct { |
- mach_port_t memory_object_; |
+ mach_port_t memory_object_ = MACH_PORT_NULL; |
- // The size of the shared memory region when |type_| is MACH. Only |
- // relevant if |memory_object_| is not |MACH_PORT_NULL|. |
- mach_vm_size_t size_; |
+ // The size of the shared memory region when |type_| is MACH. Only |
+ // relevant if |memory_object_| is not |MACH_PORT_NULL|. |
+ mach_vm_size_t size_ = 0; |
- // The pid of the process in which |memory_object_| is usable. Only |
- // relevant if |memory_object_| is not |MACH_PORT_NULL|. |
- base::ProcessId pid_; |
+ // The pid of the process in which |memory_object_| is usable. Only |
+ // relevant if |memory_object_| is not |MACH_PORT_NULL|. |
+ base::ProcessId pid_ = 0; |
- // Whether passing this object as a parameter to an IPC message passes |
- // ownership of |memory_object_| to the IPC stack. This is meant to mimic |
- // the behavior of the |auto_close| parameter of FileDescriptor. |
- // Defaults to |false|. |
- bool ownership_passes_to_ipc_; |
- }; |
- }; |
+ // Whether passing this object as a parameter to an IPC message passes |
+ // ownership of |memory_object_| to the IPC stack. This is meant to mimic |
+ // the behavior of the |auto_close| parameter of FileDescriptor. |
+ // Defaults to |false|. |
+ bool ownership_passes_to_ipc_ = false; |
}; |
#endif |