From 86a3ef27092e518d61a2540b37878da2423b4cd9 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 28 Nov 2021 09:03:15 +0100 Subject: [PATCH] LibIPC: Give MessageBuffer::fds some inline capacity (1) This dodges a heap allocation when sending 0 or 1 fd across the IPC boundary (which covers every message.) --- Userland/Libraries/LibIPC/Connection.cpp | 2 +- Userland/Libraries/LibIPC/Message.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibIPC/Connection.cpp b/Userland/Libraries/LibIPC/Connection.cpp index b9600a8332..2571c8b456 100644 --- a/Userland/Libraries/LibIPC/Connection.cpp +++ b/Userland/Libraries/LibIPC/Connection.cpp @@ -41,7 +41,7 @@ void ConnectionBase::post_message(MessageBuffer buffer) #ifdef __serenity__ for (auto& fd : buffer.fds) { - auto rc = sendfd(m_socket->fd(), fd->value()); + auto rc = sendfd(m_socket->fd(), fd.value()); if (rc < 0) { perror("sendfd"); shutdown(); diff --git a/Userland/Libraries/LibIPC/Message.h b/Userland/Libraries/LibIPC/Message.h index 86bf53c697..8590e28808 100644 --- a/Userland/Libraries/LibIPC/Message.h +++ b/Userland/Libraries/LibIPC/Message.h @@ -6,9 +6,9 @@ #pragma once +#include #include #include -#include #include namespace IPC { @@ -34,7 +34,7 @@ private: struct MessageBuffer { Vector data; - Vector> fds; + NonnullRefPtrVector fds; }; enum class ErrorCode : u32 {