[Spice-devel] [PATCH spice-gtk v2 1/4] gtk-session: use clear variable for array's size
Frediano Ziglio
fziglio at redhat.com
Thu May 18 16:03:47 UTC 2017
>
> From: Victor Toso <me at victortoso.com>
>
> There is no need to use an index variable to keep track of the number
> of VD_AGENT_CLIPBOARD types we are storing.
>
I got to read the code.
Basically the "t" variable was used to compute the number of
items stored inside "types", so yes, "num_types" sounds a much better name.
> Signed-off-by: Victor Toso <victortoso at redhat.com>
> ---
> src/spice-gtk-session.c | 17 +++++++++++------
> 1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c
> index cfdfc4c..2ae512f 100644
> --- a/src/spice-gtk-session.c
> +++ b/src/spice-gtk-session.c
> @@ -619,6 +619,7 @@ static void clipboard_get_targets(GtkClipboard
> *clipboard,
> char *name;
> int a, m, t;
> int selection;
> + gint num_types;
>
> if (s->main == NULL)
> return;
I would use "gint num_types = 0;" just as is the number of elements of "types"
and maybe I would put it just under the "types" declaration.
At this point there's also no need to initialize "types"... but this
require a bit of changes... see below (not really mandatory).
> @@ -635,6 +636,8 @@ static void clipboard_get_targets(GtkClipboard
> *clipboard,
> }
> }
>
> + /* Set all Atoms that matches our current protocol implementation */
> + num_types = 0;
> for (a = 0; a < n_atoms; a++) {
> name = gdk_atom_name(atoms[a]);
> for (m = 0; m < SPICE_N_ELEMENTS(atom2agent); m++) {
The similar for loop (using "t" index) should be limited to num_types.
> @@ -650,6 +653,7 @@ static void clipboard_get_targets(GtkClipboard
> *clipboard,
> if (types[t] == 0) {
And this test should be changed (and possibly moved outside the for).
> /* add type to empty slot */
> types[t] = atom2agent[m].vdagent;
> + num_types++;
> break;
> }
> }
> @@ -657,16 +661,17 @@ static void clipboard_get_targets(GtkClipboard
> *clipboard,
> }
> g_free(name);
> }
> - for (t = 0; t < SPICE_N_ELEMENTS(atom2agent); t++) {
> - if (types[t] == 0) {
> - break;
> - }
> +
> + if (num_types == 0) {
> + SPICE_DEBUG("No GdkAtoms will be sent from %d", n_atoms);
> + return;
> }
This debug was not present... but is just a debug.
> - if (!s->clip_grabbed[selection] && t > 0) {
> +
> + if (!s->clip_grabbed[selection]) {
> s->clip_grabbed[selection] = TRUE;
>
> if (spice_main_agent_test_capability(s->main,
> VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))
> - spice_main_clipboard_selection_grab(s->main, selection, types,
> t);
> + spice_main_clipboard_selection_grab(s->main, selection, types,
> num_types);
> /* Sending a grab causes the agent to do an implicit release */
> s->nclip_targets[selection] = 0;
> }
Otherwise looks fine
Frediano
More information about the Spice-devel
mailing list