Index: mojo/edk/system/channel.cc |
diff --git a/mojo/edk/system/channel.cc b/mojo/edk/system/channel.cc |
index 958e10c4413d1d644c2ca7563b3f9f9aef3bdb69..e74b9004758fd7851750ccd004314839ec9d9b3e 100644 |
--- a/mojo/edk/system/channel.cc |
+++ b/mojo/edk/system/channel.cc |
@@ -21,9 +21,9 @@ namespace { |
static_assert(sizeof(Channel::Message::Header) % kChannelMessageAlignment == 0, |
"Invalid Header size."); |
-#if defined(OS_CHROMEOS) |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
static_assert(sizeof(Channel::Message::Header) == 8, |
- "Header must be 8 bytes on ChromeOS"); |
+ "Header must be 8 bytes on ChromeOS and Android"); |
#endif |
} // namespace |
@@ -50,7 +50,7 @@ Channel::Message::Message(size_t payload_size, |
(extra_header_size % kChannelMessageAlignment); |
} |
DCHECK_EQ(0u, extra_header_size % kChannelMessageAlignment); |
-#if defined(OS_CHROMEOS) |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
DCHECK_EQ(0u, extra_header_size); |
#endif |
@@ -71,7 +71,7 @@ Channel::Message::Message(size_t payload_size, |
DCHECK_LE(sizeof(Header) + extra_header_size, |
std::numeric_limits<uint16_t>::max()); |
header_->message_type = message_type; |
-#if defined(OS_CHROMEOS) |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
header_->num_handles = static_cast<uint16_t>(max_handles); |
#else |
header_->num_header_bytes = |
@@ -152,7 +152,7 @@ Channel::MessagePtr Channel::Message::Deserialize(const void* data, |
} |
size_t Channel::Message::payload_size() const { |
-#if defined(OS_CHROMEOS) |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
return header_->num_bytes - sizeof(Header); |
#else |
return size_ - header_->num_header_bytes; |
@@ -160,8 +160,8 @@ size_t Channel::Message::payload_size() const { |
} |
PlatformHandle* Channel::Message::handles() { |
-#if defined(OS_CHROMEOS) |
- // Old semantics for ChromeOS. |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
+ // Old semantics for ChromeOS and Android. |
if (header_->num_handles == 0) |
return nullptr; |
CHECK(handle_vector_); |
@@ -175,7 +175,7 @@ PlatformHandle* Channel::Message::handles() { |
CHECK(handle_vector_); |
return handle_vector_->data(); |
#endif // defined(OS_WIN) |
-#endif // defined(OS_CHROMEOS) |
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID) |
} |
#if defined(OS_MACOSX) && !defined(OS_IOS) |
@@ -192,8 +192,8 @@ bool Channel::Message::has_mach_ports() const { |
#endif |
void Channel::Message::SetHandles(ScopedPlatformHandleVectorPtr new_handles) { |
-#if defined(OS_CHROMEOS) |
- // Old semantics for ChromeOS. |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
+ // Old semantics for ChromeOS and Android |
if (header_->num_handles == 0) { |
CHECK(!new_handles || new_handles->size() == 0); |
return; |
@@ -216,7 +216,7 @@ void Channel::Message::SetHandles(ScopedPlatformHandleVectorPtr new_handles) { |
#else |
std::swap(handle_vector_, new_handles); |
#endif // defined(OS_WIN) |
-#endif // defined(OS_CHROMEOS) |
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID) |
} |
ScopedPlatformHandleVectorPtr Channel::Message::TakeHandles() { |
@@ -402,7 +402,7 @@ bool Channel::OnReadComplete(size_t bytes_read, size_t *next_read_size_hint) { |
return true; |
} |
-#if defined(OS_CHROMEOS) |
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
size_t extra_header_size = 0; |
const void* extra_header = nullptr; |
size_t payload_size = header->num_bytes - sizeof(Message::Header); |
@@ -418,7 +418,7 @@ bool Channel::OnReadComplete(size_t bytes_read, size_t *next_read_size_hint) { |
const_cast<char*>(read_buffer_->occupied_bytes()) + |
header->num_header_bytes) |
: nullptr; |
-#endif |
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID) |
ScopedPlatformHandleVectorPtr handles; |
if (header->num_handles > 0) { |