| Index: ipc/ipc_message_attachment_set.cc
|
| diff --git a/ipc/ipc_message_attachment_set.cc b/ipc/ipc_message_attachment_set.cc
|
| index dd881c5843f1090c210134ab3821c20e85da75bf..cb74a5aaf07193c8d57367923a52557d40999ab4 100644
|
| --- a/ipc/ipc_message_attachment_set.cc
|
| +++ b/ipc/ipc_message_attachment_set.cc
|
| @@ -45,6 +45,13 @@ unsigned MessageAttachmentSet::num_descriptors() const {
|
| });
|
| }
|
|
|
| +unsigned MessageAttachmentSet::num_mojo_handles() const {
|
| + return std::count_if(attachments_.begin(), attachments_.end(),
|
| + [](scoped_refptr<MessageAttachment> i) {
|
| + return i->GetType() == MessageAttachment::TYPE_MOJO_HANDLE;
|
| + });
|
| +}
|
| +
|
| unsigned MessageAttachmentSet::size() const {
|
| return static_cast<unsigned>(attachments_.size());
|
| }
|
| @@ -52,7 +59,7 @@ unsigned MessageAttachmentSet::size() const {
|
| bool MessageAttachmentSet::AddAttachment(
|
| scoped_refptr<MessageAttachment> attachment) {
|
| #if defined(OS_POSIX)
|
| - if (attachment->GetType() != MessageAttachment::TYPE_PLATFORM_FILE ||
|
| + if (attachment->GetType() == MessageAttachment::TYPE_PLATFORM_FILE &&
|
| num_descriptors() == kMaxDescriptorsPerMessage) {
|
| DLOG(WARNING) << "Cannot add file descriptor. MessageAttachmentSet full.";
|
| return false;
|
| @@ -102,6 +109,11 @@ scoped_refptr<MessageAttachment> MessageAttachmentSet::GetAttachmentAt(
|
| return attachments_[index];
|
| }
|
|
|
| +void MessageAttachmentSet::CommitAll() {
|
| + attachments_.clear();
|
| + consumed_descriptor_highwater_ = 0;
|
| +}
|
| +
|
| #if defined(OS_POSIX)
|
|
|
| void MessageAttachmentSet::PeekDescriptors(base::PlatformFile* buffer) const {
|
| @@ -120,11 +132,6 @@ bool MessageAttachmentSet::ContainsDirectoryDescriptor() const {
|
| return false;
|
| }
|
|
|
| -void MessageAttachmentSet::CommitAll() {
|
| - attachments_.clear();
|
| - consumed_descriptor_highwater_ = 0;
|
| -}
|
| -
|
| void MessageAttachmentSet::ReleaseFDsToClose(
|
| std::vector<base::PlatformFile>* fds) {
|
| for (size_t i = 0; i < attachments_.size(); ++i) {
|
|
|