summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authoramistry <amistry@chromium.org>2016-03-08 22:34:23 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-09 06:36:17 +0000
commite916f14b321af7359ae93127e5d4ae7c9262dc42 (patch)
tree2ffec1ed76d830f7231fe0a55c551472b290b4d1 /mojo
parent3a31e43b54412a568d42d8e2b6d43be99ce4d32c (diff)
downloadchromium_src-e916f14b321af7359ae93127e5d4ae7c9262dc42.zip
chromium_src-e916f14b321af7359ae93127e5d4ae7c9262dc42.tar.gz
chromium_src-e916f14b321af7359ae93127e5d4ae7c9262dc42.tar.bz2
[mojo-edk] Keep old wire format and semantics on Android.
BUG=None Review URL: https://codereview.chromium.org/1775693002 Cr-Commit-Position: refs/heads/master@{#380091}
Diffstat (limited to 'mojo')
-rw-r--r--mojo/edk/system/channel.cc26
-rw-r--r--mojo/edk/system/channel.h10
2 files changed, 18 insertions, 18 deletions
diff --git a/mojo/edk/system/channel.cc b/mojo/edk/system/channel.cc
index 958e10c..e74b900 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) {
diff --git a/mojo/edk/system/channel.h b/mojo/edk/system/channel.h
index 0d7ccdb..54b6412 100644
--- a/mojo/edk/system/channel.h
+++ b/mojo/edk/system/channel.h
@@ -45,8 +45,8 @@ class Channel : public base::RefCountedThreadSafe<Channel> {
// Message size in bytes, including the header.
uint32_t num_bytes;
-#if defined(OS_CHROMEOS)
- // Old message wire format for ChromeOS.
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
+ // Old message wire format for ChromeOS and Android.
// Number of attached handles.
uint16_t num_handles;
@@ -64,7 +64,7 @@ class Channel : public base::RefCountedThreadSafe<Channel> {
MessageType message_type;
char padding[6];
-#endif // defined(OS_CHROMEOS)
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID)
};
#pragma pack(pop)
@@ -82,7 +82,7 @@ class Channel : public base::RefCountedThreadSafe<Channel> {
const void* data() const { return data_; }
size_t data_num_bytes() const { return size_; }
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
void* mutable_payload() { return static_cast<void*>(header_ + 1); }
const void* payload() const {
return static_cast<const void*>(header_ + 1);
@@ -98,7 +98,7 @@ class Channel : public base::RefCountedThreadSafe<Channel> {
void* mutable_payload() { return data_ + header_->num_header_bytes; }
const void* payload() const { return data_ + header_->num_header_bytes; }
size_t payload_size() const;
-#endif // defined(OS_CHROMEOS)
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID)
size_t num_handles() const { return header_->num_handles; }
bool has_handles() const { return header_->num_handles > 0; }