Commit d6b872af authored by qsr@chromium.org's avatar qsr@chromium.org

Java core implementation: ensure correct alignment.

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
parent ea84e607
......@@ -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);
......@@ -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);
......@@ -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);
......@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment