summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2021-05-08 15:14:58 -0700
committerFrediano Ziglio <freddy77@gmail.com>2021-05-23 10:32:07 +0100
commit8104fc34565d8a6d03e6db3bf3b327b07bf4a7f9 (patch)
tree5511e5387e1899ee7641786e3e73169af95fa0aa
parent51092046f77a775772bb4314d13092247371851b (diff)
Manual algorithm changes
Signed-off-by: Rosen Penev <rosenp@gmail.com> Acked-by: Frediano Ziglio <freddy77@gmail.com>
-rw-r--r--server/dcc.cpp34
-rw-r--r--server/display-channel.cpp27
-rw-r--r--server/reds.cpp7
-rw-r--r--server/sound.cpp14
4 files changed, 24 insertions, 58 deletions
diff --git a/server/dcc.cpp b/server/dcc.cpp
index e733ce48..ef98af3b 100644
--- a/server/dcc.cpp
+++ b/server/dcc.cpp
@@ -105,8 +105,6 @@ bool dcc_drawable_is_in_pipe(DisplayChannelClient *dcc, Drawable *drawable)
bool dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surface_id,
int wait_if_used)
{
- int x;
-
spice_return_val_if_fail(dcc != nullptr, TRUE);
/* removing the newest drawables that their destination is surface_id and
no other drawable depends on them */
@@ -115,7 +113,6 @@ bool dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surfac
for (auto l = pipe.begin(); l != pipe.end(); ) {
Drawable *drawable;
RedDrawablePipeItem *dpi = nullptr;
- int depend_found = FALSE;
RedPipeItem *item = l->get();
auto item_pos = l;
@@ -134,13 +131,9 @@ bool dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surfac
continue;
}
- for (x = 0; x < 3; ++x) {
- if (drawable->surface_deps[x] == surface_id) {
- depend_found = TRUE;
- break;
- }
- }
-
+ auto depend_found =
+ std::find(std::begin(drawable->surface_deps), std::end(drawable->surface_deps),
+ surface_id) != std::end(drawable->surface_deps);
if (depend_found) {
spice_debug("surface %d dependent item found %p, %p", surface_id, drawable, item);
if (!wait_if_used) {
@@ -271,12 +264,8 @@ void dcc_push_surface_image(DisplayChannelClient *dcc, int surface_id)
static void add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *drawable)
{
DisplayChannel *display = DCC_TO_DC(dcc);
- int x;
- for (x = 0; x < 3; ++x) {
- int surface_id;
-
- surface_id = drawable->surface_deps[x];
+ for (const auto surface_id : drawable->surface_deps) {
if (surface_id != -1) {
if (dcc->priv->surface_client_created[surface_id]) {
continue;
@@ -442,15 +431,12 @@ void dcc_start(DisplayChannelClient *dcc)
static void dcc_destroy_stream_agents(DisplayChannelClient *dcc)
{
- int i;
-
- for (i = 0; i < NUM_STREAMS; i++) {
- VideoStreamAgent *agent = &dcc->priv->stream_agents[i];
- region_destroy(&agent->vis_region);
- region_destroy(&agent->clip);
- if (agent->video_encoder) {
- agent->video_encoder->destroy(agent->video_encoder);
- agent->video_encoder = nullptr;
+ for (auto& agent : dcc->priv->stream_agents) {
+ region_destroy(&agent.vis_region);
+ region_destroy(&agent.clip);
+ if (agent.video_encoder) {
+ agent.video_encoder->destroy(agent.video_encoder);
+ agent.video_encoder = nullptr;
}
}
}
diff --git a/server/display-channel.cpp b/server/display-channel.cpp
index 1d1e71e2..9eac7463 100644
--- a/server/display-channel.cpp
+++ b/server/display-channel.cpp
@@ -1114,12 +1114,9 @@ static void display_channel_print_stats(DisplayChannel *display)
static void drawable_ref_surface_deps(DisplayChannel *display, Drawable *drawable)
{
- int x;
- int surface_id;
RedSurface *surface;
- for (x = 0; x < 3; ++x) {
- surface_id = drawable->surface_deps[x];
+ for (const auto surface_id : drawable->surface_deps) {
if (surface_id == -1) {
continue;
}
@@ -1287,7 +1284,6 @@ static Drawable *display_channel_get_drawable(DisplayChannel *display, uint8_t e
uint32_t process_commands_generation)
{
Drawable *drawable;
- int x;
/* Validate all surface ids before updating counters
* to avoid invalid updates if we find an invalid id.
@@ -1295,9 +1291,8 @@ static Drawable *display_channel_get_drawable(DisplayChannel *display, uint8_t e
if (!validate_drawable_bbox(display, red_drawable)) {
return nullptr;
}
- for (x = 0; x < 3; ++x) {
- if (red_drawable->surface_deps[x] != -1
- && !display_channel_validate_surface(display, red_drawable->surface_deps[x])) {
+ for (const auto surface_id : red_drawable->surface_deps) {
+ if (surface_id != -1 && !display_channel_validate_surface(display, surface_id)) {
return nullptr;
}
}
@@ -1545,11 +1540,9 @@ static void drawable_free(DisplayChannel *display, Drawable *drawable)
static void drawables_init(DisplayChannel *display)
{
- int i;
-
display->priv->free_drawables = nullptr;
- for (i = 0; i < NUM_DRAWABLES; i++) {
- drawable_free(display, &display->priv->drawables[i].u.drawable);
+ for (auto& drawable : display->priv->drawables) {
+ drawable_free(display, &drawable.u.drawable);
}
}
@@ -1610,11 +1603,7 @@ static void drawable_remove_dependencies(Drawable *drawable)
static void drawable_unref_surface_deps(DisplayChannel *display, Drawable *drawable)
{
- int x;
- int surface_id;
-
- for (x = 0; x < 3; ++x) {
- surface_id = drawable->surface_deps[x];
+ for (const auto surface_id : drawable->surface_deps) {
if (surface_id == -1) {
continue;
}
@@ -2445,11 +2434,11 @@ static void guest_set_client_capabilities(DisplayChannel *display)
red_qxl_set_client_capabilities(display->priv->qxl, FALSE, caps);
} else {
// Take least common denominator
- for (auto &&cap : caps_available) {
+ for (const auto cap : caps_available) {
SET_CAP(caps, cap);
}
FOREACH_CLIENT(display, rcc) {
- for (auto &&cap : caps_available) {
+ for (const auto cap : caps_available) {
if (!rcc->test_remote_cap(cap)) {
CLEAR_CAP(caps, cap);
}
diff --git a/server/reds.cpp b/server/reds.cpp
index 3aecbdb1..1bf62fc7 100644
--- a/server/reds.cpp
+++ b/server/reds.cpp
@@ -1695,12 +1695,7 @@ static void reds_mig_target_client_disconnect_all(RedsState *reds)
static bool reds_find_client(RedsState *reds, RedClient *client)
{
- for (auto list_client: reds->clients) {
- if (list_client == client) {
- return TRUE;
- }
- }
- return FALSE;
+ return std::find(reds->clients.begin(), reds->clients.end(), client) != reds->clients.end();
}
/* should be used only when there is one client */
diff --git a/server/sound.cpp b/server/sound.cpp
index 68b890c8..d976992e 100644
--- a/server/sound.cpp
+++ b/server/sound.cpp
@@ -975,11 +975,9 @@ static int snd_desired_audio_mode(bool playback_compression, int frequency,
PlaybackChannelClient::~PlaybackChannelClient()
{
- int i;
-
// free frames, unref them
- for (i = 0; i < NUM_AUDIO_FRAMES; ++i) {
- frames->items[i].client = nullptr;
+ for (auto& item : frames->items) {
+ item.client = nullptr;
}
if (--frames->refs == 0) {
g_free(frames);
@@ -1298,12 +1296,10 @@ void snd_set_playback_compression(bool on)
static void snd_playback_alloc_frames(PlaybackChannelClient *playback)
{
- int i;
-
playback->frames = g_new0(AudioFrameContainer, 1);
playback->frames->refs = 1;
- for (i = 0; i < NUM_AUDIO_FRAMES; ++i) {
- playback->frames->items[i].container = playback->frames;
- snd_playback_free_frame(playback, &playback->frames->items[i]);
+ for (auto& item : playback->frames->items) {
+ item.container = playback->frames;
+ snd_playback_free_frame(playback, &item);
}
}