Skip to content

Commit

Permalink
Java core implementation: ensure correct alignment.
Browse files Browse the repository at this point in the history
Ensures that buffer received from the java side are correctly aligned.

R=viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/405893004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284672 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
qsr@chromium.org committed Jul 22, 2014
1 parent ea84e60 commit d6b872a
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions mojo/android/system/core_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ static jint WaitMany(JNIEnv* env,
// Buffer contains first the list of handles, then the list of signals.
const void* buffer_start = env->GetDirectBufferAddress(buffer);
DCHECK(buffer_start);
DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
const size_t record_size = 8;
const size_t buffer_size = env->GetDirectBufferCapacity(buffer);
DCHECK_EQ(buffer_size % record_size, 0u);
Expand All @@ -82,6 +83,7 @@ static jobject CreateMessagePipe(JNIEnv* env,
if (options_buffer) {
const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
DCHECK(buffer_start);
DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
DCHECK_EQ(buffer_size, sizeof(MojoCreateMessagePipeOptions));
options = static_cast<const MojoCreateMessagePipeOptions*>(buffer_start);
Expand All @@ -101,6 +103,7 @@ static jobject CreateDataPipe(JNIEnv* env,
if (options_buffer) {
const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
DCHECK(buffer_start);
DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
DCHECK_EQ(buffer_size, sizeof(MojoCreateDataPipeOptions));
options = static_cast<const MojoCreateDataPipeOptions*>(buffer_start);
Expand All @@ -121,6 +124,7 @@ static jobject CreateSharedBuffer(JNIEnv* env,
if (options_buffer) {
const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
DCHECK(buffer_start);
DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
DCHECK_EQ(buffer_size, sizeof(MojoCreateSharedBufferOptions));
options = static_cast<const MojoCreateSharedBufferOptions*>(buffer_start);
Expand Down

0 comments on commit d6b872a

Please sign in to comment.