On Tue, Mar 12, 2019 at 05:58:40AM -0400, Frediano Ziglio wrote: > ping I guess I would reword this as "char-device: Don't use RedClient API" RedCharDevice only use red_client_get_server() once, we can store a Reds* in RedCharDeviceClient instead. This will make it possible to turn the RedClient reference into a generic pointer/handle in a later commit, which will be useful if we want to split the flow control part of char-device in a more specialised file (not sure the last part is accurate regarding your goal ;) Dunno how that sounds? Christophe > > > > > RedClient was an opaque structure for RedCharDevice. > > It started to be used when RedsState started to contain all > > the global state. > > Make it opaque again. > > > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > > --- > > server/char-device.c | 16 +++++++--------- > > 1 file changed, 7 insertions(+), 9 deletions(-) > > > > diff --git a/server/char-device.c b/server/char-device.c > > index 040b91147..465c1a125 100644 > > --- a/server/char-device.c > > +++ b/server/char-device.c > > @@ -22,8 +22,8 @@ > > > > #include <config.h> > > #include <inttypes.h> > > + > > #include "char-device.h" > > -#include "red-client.h" > > #include "reds.h" > > #include "glib-compat.h" > > > > @@ -703,11 +703,10 @@ void red_char_device_destroy(RedCharDevice *char_dev) > > g_object_unref(char_dev); > > } > > > > -static RedCharDeviceClient *red_char_device_client_new(RedClient *client, > > - int do_flow_control, > > - uint32_t > > max_send_queue_size, > > - uint32_t > > num_client_tokens, > > - uint32_t > > num_send_tokens) > > +static RedCharDeviceClient * > > +red_char_device_client_new(RedsState *reds, RedClient *client, > > + int do_flow_control, uint32_t > > max_send_queue_size, > > + uint32_t num_client_tokens, uint32_t > > num_send_tokens) > > { > > RedCharDeviceClient *dev_client; > > > > @@ -717,8 +716,6 @@ static RedCharDeviceClient > > *red_char_device_client_new(RedClient *client, > > dev_client->max_send_queue_size = max_send_queue_size; > > dev_client->do_flow_control = do_flow_control; > > if (do_flow_control) { > > - RedsState *reds = red_client_get_server(client); > > - > > dev_client->wait_for_tokens_timer = > > reds_core_timer_add(reds, device_client_wait_for_tokens_timeout, > > dev_client); > > @@ -757,7 +754,8 @@ bool red_char_device_client_add(RedCharDevice *dev, > > dev->priv->wait_for_migrate_data = wait_for_migrate_data; > > > > spice_debug("char device %p, client %p", dev, client); > > - dev_client = red_char_device_client_new(client, do_flow_control, > > + dev_client = red_char_device_client_new(dev->priv->reds, client, > > + do_flow_control, > > max_send_queue_size, > > num_client_tokens, > > num_send_tokens); > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel