| Index: mojo/edk/system/data_pipe_consumer_dispatcher.cc
|
| diff --git a/mojo/edk/system/data_pipe_consumer_dispatcher.cc b/mojo/edk/system/data_pipe_consumer_dispatcher.cc
|
| index 2b3f5141fa6465a66bb0f86986f814b7562dda4c..f2d4496f2934368aacdbd02e4499797ee44f5486 100644
|
| --- a/mojo/edk/system/data_pipe_consumer_dispatcher.cc
|
| +++ b/mojo/edk/system/data_pipe_consumer_dispatcher.cc
|
| @@ -58,7 +58,8 @@ MojoResult DataPipeConsumerDispatcher::ReadDataImplNoLock(
|
|
|
| if ((flags & MOJO_READ_DATA_FLAG_DISCARD)) {
|
| // These flags are mutally exclusive.
|
| - if ((flags & MOJO_READ_DATA_FLAG_QUERY))
|
| + if ((flags & MOJO_READ_DATA_FLAG_QUERY) ||
|
| + (flags & MOJO_READ_DATA_FLAG_PEEK))
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| DVLOG_IF(2, !elements.IsNull())
|
| << "Discard mode: ignoring non-null |elements|";
|
| @@ -67,6 +68,8 @@ MojoResult DataPipeConsumerDispatcher::ReadDataImplNoLock(
|
| }
|
|
|
| if ((flags & MOJO_READ_DATA_FLAG_QUERY)) {
|
| + if ((flags & MOJO_READ_DATA_FLAG_PEEK))
|
| + return MOJO_RESULT_INVALID_ARGUMENT;
|
| DCHECK(!(flags & MOJO_READ_DATA_FLAG_DISCARD)); // Handled above.
|
| DVLOG_IF(2, !elements.IsNull())
|
| << "Query mode: ignoring non-null |elements|";
|
| @@ -74,7 +77,10 @@ MojoResult DataPipeConsumerDispatcher::ReadDataImplNoLock(
|
| }
|
|
|
| return data_pipe_->ConsumerReadData(
|
| - elements, num_bytes, (flags & MOJO_READ_DATA_FLAG_ALL_OR_NONE));
|
| + elements,
|
| + num_bytes,
|
| + (flags & MOJO_READ_DATA_FLAG_ALL_OR_NONE),
|
| + (flags & MOJO_READ_DATA_FLAG_PEEK));
|
| }
|
|
|
| MojoResult DataPipeConsumerDispatcher::BeginReadDataImplNoLock(
|
| @@ -85,7 +91,8 @@ MojoResult DataPipeConsumerDispatcher::BeginReadDataImplNoLock(
|
|
|
| // These flags may not be used in two-phase mode.
|
| if ((flags & MOJO_READ_DATA_FLAG_DISCARD) ||
|
| - (flags & MOJO_READ_DATA_FLAG_QUERY))
|
| + (flags & MOJO_READ_DATA_FLAG_QUERY) ||
|
| + (flags & MOJO_READ_DATA_FLAG_PEEK))
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
|
|
| return data_pipe_->ConsumerBeginReadData(
|
|
|