diff options
author | Frediano Ziglio <freddy77@gmail.com> | 2021-05-31 20:23:38 +0100 |
---|---|---|
committer | Frediano Ziglio <freddy77@gmail.com> | 2023-11-22 07:39:19 +0000 |
commit | 7db44ba27055f81801734f5e2026e443a5f54a5f (patch) | |
tree | 00130df7fbc3ac568ba97417b9b4e55ffb9be29c | |
parent | 0cd85544e14c3427c8c01f5075f760cc31d02cc6 (diff) |
more on ring... protect all functions
they were a bit weird
TODO: use static helpers ??
-rw-r--r-- | server/ring.hpp | 10 | ||||
-rw-r--r-- | server/video-stream.cpp | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/server/ring.hpp b/server/ring.hpp index c9e0f16c..6988d43b 100644 --- a/server/ring.hpp +++ b/server/ring.hpp @@ -15,6 +15,7 @@ public: remove(); } +private: /** * Tell if this item is in a Ring */ @@ -34,7 +35,6 @@ public: prev = next = nullptr; } } -private: friend struct Ring<T, n>; RingItem *next = nullptr; RingItem *prev = nullptr; @@ -84,6 +84,14 @@ struct Ring pos->RingItem<T,n>::remove(); return iterator(next->to_contained()); } + void remove(T *item) + { + item->remove(); + } + bool is_linked(const T *item) const + { + return item->is_linked(); + } private: RingItem<T, n> link; }; diff --git a/server/video-stream.cpp b/server/video-stream.cpp index b9859a7c..f818e416 100644 --- a/server/video-stream.cpp +++ b/server/video-stream.cpp @@ -93,7 +93,7 @@ void video_stream_stop(DisplayChannel *display, VideoStream *stream) DisplayChannelClient *dcc; int stream_id = display_channel_get_video_stream_id(display, stream); - spice_return_if_fail(stream->is_linked()); + spice_return_if_fail(display->priv->streams.is_linked(stream)); spice_return_if_fail(!stream->current); spice_debug("stream %d", stream_id); @@ -117,7 +117,7 @@ void video_stream_stop(DisplayChannel *display, VideoStream *stream) video_stream_agent_stats_print(stream_agent); } display->priv->streams_size_total -= stream->width * stream->height; - stream->remove(); + display->priv->streams.remove(stream); video_stream_unref(display, stream); } @@ -140,7 +140,7 @@ void video_stream_unref(DisplayChannel *display, VideoStream *stream) if (--stream->refs != 0) return; - spice_warn_if_fail(!stream->is_linked()); + spice_warn_if_fail(!display->priv->streams.is_linked(stream)); video_stream_free(display, stream); display->priv->stream_count--; |