[Spice-devel] [PATCH 2/2] display-channel: introduce display_channel_get_nth_stream()

Victor Toso victortoso at redhat.com
Thu Jun 29 15:44:04 UTC 2017


From: Victor Toso <me at victortoso.com>

To help avoid stream.c and dcc.c to access display-channel private
structure to get the nth Stream structure pointer.

Signed-off-by: Victor Toso <victortoso at redhat.com>
---
 server/dcc.c             | 2 +-
 server/display-channel.c | 5 +++++
 server/display-channel.h | 1 +
 server/stream.c          | 2 +-
 4 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/server/dcc.c b/server/dcc.c
index f8393362..a9529fae 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -487,7 +487,7 @@ static void dcc_init_stream_agents(DisplayChannelClient *dcc)
 
     for (i = 0; i < NUM_STREAMS; i++) {
         StreamAgent *agent = &dcc->priv->stream_agents[i];
-        agent->stream = &display->priv->streams_buf[i];
+        agent->stream = display_channel_get_nth_stream(display, i);
         region_init(&agent->vis_region);
         region_init(&agent->clip);
     }
diff --git a/server/display-channel.c b/server/display-channel.c
index bebee3bb..68ea3bad 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -2416,6 +2416,11 @@ int display_channel_get_stream_id(DisplayChannel *display, Stream *stream)
     return (int)(stream - display->priv->streams_buf);
 }
 
+Stream *display_channel_get_nth_stream(DisplayChannel *display, gint i)
+{
+    return &display->priv->streams_buf[i];
+}
+
 gboolean display_channel_validate_surface(DisplayChannel *display, uint32_t surface_id)
 {
     if SPICE_UNLIKELY(surface_id >= display->priv->n_surfaces) {
diff --git a/server/display-channel.h b/server/display-channel.h
index 436cd33e..d15aad46 100644
--- a/server/display-channel.h
+++ b/server/display-channel.h
@@ -184,6 +184,7 @@ typedef struct RedSurface {
                   _iter, DisplayChannelClient, _data)
 
 int display_channel_get_stream_id(DisplayChannel *display, Stream *stream);
+Stream *display_channel_get_nth_stream(DisplayChannel *display, gint i);
 
 typedef struct RedSurfaceDestroyItem {
     RedPipeItem pipe_item;
diff --git a/server/stream.c b/server/stream.c
index 9a3a82d1..ff2676cf 100644
--- a/server/stream.c
+++ b/server/stream.c
@@ -141,7 +141,7 @@ void display_channel_init_streams(DisplayChannel *display)
     ring_init(&display->priv->streams);
     display->priv->free_streams = NULL;
     for (i = 0; i < NUM_STREAMS; i++) {
-        Stream *stream = &display->priv->streams_buf[i];
+        Stream *stream = display_channel_get_nth_stream(display, i);
         ring_item_init(&stream->link);
         stream_free(display, stream);
     }
-- 
2.13.0



More information about the Spice-devel mailing list