[Spice-devel] [spice-server 1/2] Remove GSlice use
Frediano Ziglio
fziglio at redhat.com
Thu Jan 14 08:20:50 PST 2016
> It's being slowly deprecated in glib
> https://bugzilla.gnome.org/show_bug.cgi?id=754687
> ---
> NEWS | 2 --
> server/cursor-channel.c | 4 ++--
> server/red-replay-qxl.c | 4 ++--
> 3 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/NEWS b/NEWS
> index 3b32b5c..e906e88 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -9,8 +9,6 @@ keep the code as functional as 0.12, but regressions or bugs
> could still happen.
> * Start of a large code rework to attempt to make the codebase more
> maintainable. With this first release, the huge red_worker.c file has been
> split
> in multiple smaller files.
> -* glib's GSlice is now used in some places,
> G_SLICE=(debug_blocks|always_malloc) may
> - be needed in order to debug some memory issues.
>
> * Added public spice_server_set_keepalive_timeout() to make it possible
> to tweak keepalive on all SPICE connection. This can prevent unwanted
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index ec994e3..4c15582 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -95,7 +95,7 @@ static CursorItem *cursor_item_new(QXLInstance *qxl,
> RedCursorCmd *cmd, uint32_t
>
> spice_return_val_if_fail(cmd != NULL, NULL);
>
> - cursor_item = g_slice_new0(CursorItem);
> + cursor_item = g_new0(CursorItem, 1);
> cursor_item->qxl = qxl;
> cursor_item->refs = 1;
> cursor_item->group_id = group_id;
> @@ -131,7 +131,7 @@ static void cursor_item_unref(CursorItem *item)
> red_put_cursor_cmd(cursor_cmd);
> free(cursor_cmd);
>
> - g_slice_free(CursorItem, item);
> + g_free(item);
>
> }
>
> diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
> index 95a9fdd..8e0b28c 100644
> --- a/server/red-replay-qxl.c
> +++ b/server/red-replay-qxl.c
> @@ -1134,7 +1134,7 @@ SPICE_GNUC_VISIBLE QXLCommandExt*
> spice_replay_next_cmd(SpiceReplay *replay,
> replay_handle_dev_input(worker, replay, type);
> }
> }
> - cmd = g_slice_new(QXLCommandExt);
> + cmd = g_new(QXLCommandExt, 1);
> cmd->cmd.type = type;
> cmd->group_id = 0;
> spice_debug("command %"PRIu64", %d\r", timestamp, cmd->cmd.type);
> @@ -1195,7 +1195,7 @@ SPICE_GNUC_VISIBLE void
> spice_replay_free_cmd(SpiceReplay *replay, QXLCommandExt
> break;
> }
>
> - g_slice_free(QXLCommandExt, cmd);
> + g_free(cmd);
> }
>
> /* caller is incharge of closing the replay when done and releasing the
> SpiceReplay
I think patches whould be applied in the reverse order.
This is supposed to be first patch and to remove g_slice_* but there
are some left in ./server/dcc-encoders.c, removed by second patch.
Frediano
More information about the Spice-devel
mailing list