[Spice-devel] [PATCH 04/22] worker: do not use dynamic memory for RedSurfaceCmd
Fabiano FidĂȘncio
fidencio at redhat.com
Wed Dec 2 09:22:52 PST 2015
On Wed, Dec 2, 2015 at 5:19 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> Allocation on stack is sufficient and code is more similar to
> QXL_CMD_MESSAGE and QXL_CMD_UPDATE cases.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/display-channel.c | 5 +----
> server/red_worker.c | 9 +++++----
> 2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/server/display-channel.c b/server/display-channel.c
> index 43f2e0e..809673b 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -2081,7 +2081,7 @@ void display_channel_process_surface_cmd(DisplayChannel *display, RedSurfaceCmd
>
> surface_id = surface->surface_id;
> if SPICE_UNLIKELY(surface_id >= display->n_surfaces) {
> - goto exit;
> + return;
> }
>
> red_surface = &display->surfaces[surface_id];
> @@ -2119,9 +2119,6 @@ void display_channel_process_surface_cmd(DisplayChannel *display, RedSurfaceCmd
> default:
> spice_warn_if_reached();
> };
> -exit:
> - red_put_surface_cmd(surface);
> - free(surface);
> }
>
> void display_channel_update_compression(DisplayChannel *display, DisplayChannelClient *dcc)
> diff --git a/server/red_worker.c b/server/red_worker.c
> index 329c2ef..f2c3126 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -329,15 +329,16 @@ static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int *
> break;
> }
> case QXL_CMD_SURFACE: {
> - RedSurfaceCmd *surface = spice_new0(RedSurfaceCmd, 1);
> + RedSurfaceCmd surface;
>
> if (red_get_surface_cmd(&worker->mem_slots, ext_cmd.group_id,
> - surface, ext_cmd.cmd.data)) {
> - free(surface);
> + &surface, ext_cmd.cmd.data)) {
> break;
> }
> - display_channel_process_surface_cmd(worker->display_channel, surface,
> + display_channel_process_surface_cmd(worker->display_channel, &surface,
> ext_cmd.group_id, FALSE);
> + // do not release resource as is released inside red_process_surface
> + red_put_surface_cmd(&surface);
> break;
> }
> default:
> --
> 2.4.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
Acked-by: Fabiano FidĂȘncio <fidencio at redhat.com>
More information about the Spice-devel
mailing list