[Spice-devel] [spice] server: Disable deprecation warnings only where needed
Frediano Ziglio
fziglio at redhat.com
Wed Nov 23 10:09:05 UTC 2016
>
> On Wed, Nov 23, 2016 at 06:48:22AM +0100, Francois Gouget wrote:
> > Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
> > ---
> > server/red-qxl.c | 2 ++
> > server/red-replay-qxl.c | 10 ++++++++++
> > server/reds-stream.c | 2 ++
> > server/spice-core.h | 4 ----
> > 4 files changed, 14 insertions(+), 4 deletions(-)
> >
> > diff --git a/server/spice-core.h b/server/spice-core.h
> > index 4d8f2ed..dfd24ab 100644
> > --- a/server/spice-core.h
> > +++ b/server/spice-core.h
> > @@ -28,10 +28,6 @@
> > #include <spice/vd_agent.h>
> > #include <spice/macros.h>
> >
> > -#ifdef SPICE_SERVER_INTERNAL
> > -#undef SPICE_GNUC_DEPRECATED
> > -#define SPICE_GNUC_DEPRECATED
> > -#endif
> >
> > /* interface base type */
> >
>
> This hunk you remove is there so that we ignore internal deprecations,
> imo it's ok to have, I'll assume we are not going to add usage of
> deprecated functions ourselves. As usual, a slightly longer rationale in
> the commit log would be better than just a shortlog.
>
> Christophe
I thinks this is the key of the patch. Instead of disabling all deprecation
disable the warning for specified piece of code.
>
> > diff --git a/server/red-qxl.c b/server/red-qxl.c
> > index 19cff95..2ca2537 100644
> > --- a/server/red-qxl.c
> > +++ b/server/red-qxl.c
> > @@ -977,6 +977,7 @@ void red_qxl_init(RedsState *reds, QXLInstance *qxl)
> > qxl_state->dispatcher = dispatcher_new(RED_WORKER_MESSAGE_COUNT,
> > NULL);
> > qxl_state->qxl_worker.major_version = SPICE_INTERFACE_QXL_MAJOR;
> > qxl_state->qxl_worker.minor_version = SPICE_INTERFACE_QXL_MINOR;
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > qxl_state->qxl_worker.wakeup = qxl_worker_wakeup;
> > qxl_state->qxl_worker.oom = qxl_worker_oom;
> > qxl_state->qxl_worker.start = qxl_worker_start;
> > @@ -993,6 +994,7 @@ void red_qxl_init(RedsState *reds, QXLInstance *qxl)
> > qxl_state->qxl_worker.reset_cursor = qxl_worker_reset_cursor;
> > qxl_state->qxl_worker.destroy_surface_wait =
> > qxl_worker_destroy_surface_wait;
> > qxl_state->qxl_worker.loadvm_commands = qxl_worker_loadvm_commands;
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> >
> > qxl_state->max_monitors = UINT_MAX;
> > qxl->st = qxl_state;
> > diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
> > index 2176068..360e8f5 100644
> > --- a/server/red-replay-qxl.c
> > +++ b/server/red-replay-qxl.c
> > @@ -1241,7 +1241,9 @@ static void replay_handle_create_primary(QXLWorker
> > *worker, SpiceReplay *replay)
> > spice_printerr(
> > "WARNING: %d: original recording event not preceded by a
> > destroy primary",
> > replay->counter);
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > worker->destroy_primary_surface(worker, 0);
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> > }
> > replay->created_primary = TRUE;
> >
> > @@ -1255,7 +1257,9 @@ static void replay_handle_create_primary(QXLWorker
> > *worker, SpiceReplay *replay)
> > read_binary(replay, "data", &size, &mem, 0);
> > surface.group_id = 0;
> > surface.mem = QXLPHYSICAL_FROM_PTR(mem);
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > worker->create_primary_surface(worker, 0, &surface);
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> > }
> >
> > static void replay_handle_dev_input(QXLWorker *worker, SpiceReplay
> > *replay,
> > @@ -1264,15 +1268,21 @@ static void replay_handle_dev_input(QXLWorker
> > *worker, SpiceReplay *replay,
> > switch (message) {
> > case RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE:
> > case RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE_ASYNC:
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > replay_handle_create_primary(worker, replay);
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> > break;
> > case RED_WORKER_MESSAGE_DESTROY_PRIMARY_SURFACE:
> > replay->created_primary = FALSE;
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > worker->destroy_primary_surface(worker, 0);
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> > break;
> > case RED_WORKER_MESSAGE_DESTROY_SURFACES:
> > replay->created_primary = FALSE;
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > worker->destroy_surfaces(worker);
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> > break;
> > case RED_WORKER_MESSAGE_UPDATE:
> > // XXX do anything? we record the correct bitmaps already.
Yes, looks like the replay interface still uses the old interface.
> > diff --git a/server/reds-stream.c b/server/reds-stream.c
> > index 9896eab..1f95b13 100644
> > --- a/server/reds-stream.c
> > +++ b/server/reds-stream.c
> > @@ -358,10 +358,12 @@ static void reds_stream_set_socket(RedsStream
> > *stream, int socket)
> > {
> > stream->socket = socket;
> > /* deprecated fields. Filling them for backward compatibility */
> > + G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > stream->priv->info->llen = sizeof(stream->priv->info->laddr);
> > stream->priv->info->plen = sizeof(stream->priv->info->paddr);
> > getsockname(stream->socket, (struct
> > sockaddr*)(&stream->priv->info->laddr), &stream->priv->info->llen);
> > getpeername(stream->socket, (struct
> > sockaddr*)(&stream->priv->info->paddr), &stream->priv->info->plen);
> > + G_GNUC_END_IGNORE_DEPRECATIONS
> >
> > stream->priv->info->flags |= SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT;
> > stream->priv->info->llen_ext = sizeof(stream->priv->info->laddr_ext);
Does this work on RHEL6 ?
Frediano
More information about the Spice-devel
mailing list