blob: 169bbc8fbcffb3f1255191488a6246cbde15562b [file] [log] [blame]
diff --git a/base/memory/shared_memory_posix.cc b/base/memory/shared_memory_posix.cc
index e1289e7e1da0..aa718957cf26 100644
--- a/base/memory/shared_memory_posix.cc
+++ b/base/memory/shared_memory_posix.cc
@@ -29,6 +30,8 @@
#if defined(OS_ANDROID)
#include "base/os_compat_android.h"
+#endif
+#if defined(OS_ANDROID) || defined(__ANDROID__)
#include "third_party/ashmem/ashmem.h"
#endif
@@ -80,7 +83,7 @@ bool SharedMemory::CreateAndMapAnonymous(size_t size) {
return CreateAnonymous(size) && Map(size);
}
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__ANDROID__)
// Chromium mostly only uses the unique/private shmem as specified by
// "name == L"". The exception is in the StatsTable.
@@ -252,7 +255,7 @@ bool SharedMemory::Open(const std::string& name, bool read_only) {
FileDescriptor(readonly_mapped_file, false), 0, shm_.GetGUID());
return result;
}
-#endif // !defined(OS_ANDROID)
+#endif // !defined(OS_ANDROID) && !defined(__ANDROID__)
bool SharedMemory::MapAt(off_t offset, size_t bytes) {
if (!shm_.IsValid())
@@ -264,7 +267,7 @@ bool SharedMemory::MapAt(off_t offset, size_t bytes) {
if (memory_)
return false;
-#if defined(OS_ANDROID)
+#if defined(OS_ANDROID) || defined(__ANDROID__)
// On Android, Map can be called with a size and offset of zero to use the
// ashmem-determined size.
if (bytes == 0) {
@@ -277,19 +280,19 @@ bool SharedMemory::MapAt(off_t offset, size_t bytes) {
// Sanity check. This shall catch invalid uses of the SharedMemory APIs
// but will not protect against direct mmap() attempts.
- if (shm_.IsReadOnly()) {
- // Use a DCHECK() to call writable mappings with read-only descriptors
- // in debug builds immediately. Return an error for release builds
- // or during unit-testing (assuming a ScopedLogAssertHandler was installed).
- DCHECK(read_only_)
- << "Trying to map a region writable with a read-only descriptor.";
- if (!read_only_) {
- return false;
- }
- if (!shm_.SetRegionReadOnly()) { // Ensure the region is read-only.
- return false;
- }
- }
+ // if (shm_.IsReadOnly()) {
+ // // Use a DCHECK() to call writable mappings with read-only descriptors
+ // // in debug builds immediately. Return an error for release builds
+ // // or during unit-testing (assuming a ScopedLogAssertHandler was installed).
+ // DCHECK(read_only_)
+ // << "Trying to map a region writable with a read-only descriptor.";
+ // if (!read_only_) {
+ // return false;
+ // }
+ // if (!shm_.SetRegionReadOnly()) { // Ensure the region is read-only.
+ // return false;
+ // }
+ // }
#endif
memory_ = mmap(nullptr, bytes, PROT_READ | (read_only_ ? 0 : PROT_WRITE),
@@ -334,7 +339,7 @@ SharedMemoryHandle SharedMemory::TakeHandle() {
return handle_copy;
}
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__ANDROID__)
void SharedMemory::Close() {
if (shm_.IsValid()) {
shm_.Close();
@@ -374,6 +379,6 @@ SharedMemoryHandle SharedMemory::GetReadOnlyHandle() const {
CHECK(readonly_shm_.IsValid());
return readonly_shm_.Duplicate();
}
-#endif // !defined(OS_ANDROID)
+#endif // !defined(OS_ANDROID) && !defined(__ANDROID__)
} // namespace base