From a10e496c469cee7aa3bc9887209a5f558f534326 Mon Sep 17 00:00:00 2001 From: Frediano Ziglio Date: Thu, 7 May 2020 12:43:14 +0100 Subject: [PATCH] char-device: Remove "sin" parameter from read_one_msg_from_device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not much used, can be retrieved from the class if needed. There are some apparent test removal on reds.cpp. The test "if (!reds->vdagent)" apparently disappeared but it's included in the while. reds->agent_dev cannot be NULL as SPICE server allows only one agent and we are into a member of an object so it must be reds->agent_dev.get() == this. As there's only an agent and as the interface (sin) is extracted from that agent it must be reds->agent_dev.get() == sin->st and either reds->vdagent == sin or reds->vdagent == NULL. Signed-off-by: Frediano Ziglio Acked-by: Julien Ropé --- server/char-device.cpp | 2 +- server/char-device.h | 2 +- server/red-stream-device.cpp | 2 +- server/red-stream-device.h | 2 +- server/reds.cpp | 9 ++------- server/smartcard.cpp | 2 +- server/smartcard.h | 2 +- server/spicevmc.cpp | 4 ++-- 8 files changed, 10 insertions(+), 15 deletions(-) diff --git a/server/char-device.cpp b/server/char-device.cpp index cf527001..762a4939 100644 --- a/server/char-device.cpp +++ b/server/char-device.cpp @@ -255,7 +255,7 @@ static bool red_char_device_read_from_device(RedCharDevice *dev) while ((max_send_tokens || (dev->priv->clients == NULL)) && dev->priv->running) { RedPipeItem *msg; - msg = dev->read_one_msg_from_device(dev->priv->sin); + msg = dev->read_one_msg_from_device(); if (!msg) { if (dev->priv->during_read_from_device > 1) { dev->priv->during_read_from_device = 1; diff --git a/server/char-device.h b/server/char-device.h index 5c453b78..54963e55 100644 --- a/server/char-device.h +++ b/server/char-device.h @@ -190,7 +190,7 @@ public: /* reads from the device till reaching a msg that should be sent to the client, * or till the reading fails */ - virtual RedPipeItem* read_one_msg_from_device(SpiceCharDeviceInstance *sin) = 0; + virtual RedPipeItem* read_one_msg_from_device() = 0; /* After this call, the message is unreferenced. * Can be NULL. */ virtual void send_msg_to_client(RedPipeItem *msg, RedCharDeviceClientOpaque *client) {}; diff --git a/server/red-stream-device.cpp b/server/red-stream-device.cpp index e57e554a..c62ceceb 100644 --- a/server/red-stream-device.cpp +++ b/server/red-stream-device.cpp @@ -158,7 +158,7 @@ StreamDevice::partial_read() return false; } -RedPipeItem* StreamDevice::read_one_msg_from_device(SpiceCharDeviceInstance *) +RedPipeItem* StreamDevice::read_one_msg_from_device() { while (partial_read()) { continue; diff --git a/server/red-stream-device.h b/server/red-stream-device.h index b1f0f055..c10e4beb 100644 --- a/server/red-stream-device.h +++ b/server/red-stream-device.h @@ -90,7 +90,7 @@ private: StreamDeviceDisplayInfo device_display_info; private: - virtual RedPipeItem* read_one_msg_from_device(SpiceCharDeviceInstance *sin) override; + virtual RedPipeItem* read_one_msg_from_device() override; virtual void remove_client(RedCharDeviceClientOpaque *client) override; virtual void port_event(uint8_t event) override; diff --git a/server/reds.cpp b/server/reds.cpp index 945c1400..c3e94cb1 100644 --- a/server/reds.cpp +++ b/server/reds.cpp @@ -220,7 +220,7 @@ struct RedCharDeviceVDIPort: public RedCharDevice RedCharDeviceVDIPort(); ~RedCharDeviceVDIPort(); - virtual RedPipeItem* read_one_msg_from_device(SpiceCharDeviceInstance *sin) override; + virtual RedPipeItem* read_one_msg_from_device() override; virtual void send_msg_to_client(RedPipeItem *msg, RedCharDeviceClientOpaque *opaque) override; virtual void send_tokens_to_client(RedCharDeviceClientOpaque *opaque, uint32_t tokens) override; virtual void remove_client(RedCharDeviceClientOpaque *opaque); @@ -760,18 +760,13 @@ static void reds_adjust_agent_capabilities(RedsState *reds, VDAgentMessage *mess /* reads from the device till completes reading a message that is addressed to the client, * or otherwise, when reading from the device fails */ RedPipeItem * -RedCharDeviceVDIPort::read_one_msg_from_device(SpiceCharDeviceInstance *sin) +RedCharDeviceVDIPort::read_one_msg_from_device() { RedsState *reds; RedVDIReadBuf *dispatch_buf; int n; reds = get_server(); - g_assert(reds->agent_dev.get() == sin->st); - if (!reds->vdagent) { - return NULL; - } - spice_assert(reds->vdagent == sin); while (reds->vdagent) { switch (priv->read_state) { case VDI_PORT_READ_STATE_READ_HEADER: diff --git a/server/smartcard.cpp b/server/smartcard.cpp index d6f2695b..d17c318b 100644 --- a/server/smartcard.cpp +++ b/server/smartcard.cpp @@ -98,7 +98,7 @@ static void smartcard_read_buf_prepare(RedCharDeviceSmartcard *dev, VSCMsgHeader } RedPipeItem* -RedCharDeviceSmartcard::read_one_msg_from_device(SpiceCharDeviceInstance *) +RedCharDeviceSmartcard::read_one_msg_from_device() { RedCharDeviceSmartcard *dev = this; VSCMsgHeader *vheader = (VSCMsgHeader*)dev->priv->buf; diff --git a/server/smartcard.h b/server/smartcard.h index c1bf1d29..19ad349c 100644 --- a/server/smartcard.h +++ b/server/smartcard.h @@ -34,7 +34,7 @@ public: protected: ~RedCharDeviceSmartcard(); private: - RedPipeItem* read_one_msg_from_device(SpiceCharDeviceInstance *sin) override; + RedPipeItem* read_one_msg_from_device() override; void send_msg_to_client(RedPipeItem *msg, RedCharDeviceClientOpaque *client) override; void remove_client(RedCharDeviceClientOpaque *client) override; public: // XXX make private diff --git a/server/spicevmc.cpp b/server/spicevmc.cpp index ad314cd0..0c187c3f 100644 --- a/server/spicevmc.cpp +++ b/server/spicevmc.cpp @@ -59,7 +59,7 @@ struct RedCharDeviceSpiceVmc: public RedCharDevice RedCharDeviceSpiceVmc(SpiceCharDeviceInstance *sin, RedsState *reds, RedVmcChannel *channel); ~RedCharDeviceSpiceVmc(); - virtual RedPipeItem* read_one_msg_from_device(SpiceCharDeviceInstance *sin) override; + virtual RedPipeItem* read_one_msg_from_device() override; virtual void remove_client(RedCharDeviceClientOpaque *opaque) override; virtual void on_free_self_token() override; virtual void port_event(uint8_t event) override; @@ -247,7 +247,7 @@ static RedVmcPipeItem* try_compress_lz4(RedVmcChannel *channel, int n, RedVmcPip } #endif -RedPipeItem* RedCharDeviceSpiceVmc::read_one_msg_from_device(SpiceCharDeviceInstance *) +RedPipeItem* RedCharDeviceSpiceVmc::read_one_msg_from_device() { RedVmcPipeItem *msg_item; int n;