Re: [PATCH 3/3] Convert RedChannelClient heirarchy to GObject

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> Convert the RedChannelClient heirarchy into GObjects. Since the existing
> constructors could fail and return NULL, I inherited the base channel
> client from GInitable, which introduces a dependency on gio.
> 
> When using private structs with GObject, there's a maximum size of (I
> think) 64k, which was exceeded by some of the private structs. To avoid
> this limitation I changed some members to dynamically allocated.

Why not handling the priv memory management manually (g_new/g_free)
instead? This would require less changes.

I think the first comment however is that this patch is too big
and do too much stuff.

The dummy channel is promoted as a new class. I was looking some
days ago (for other reasons) at the dummy and RedChannelClient
creation and it looks that mainly the difference between is that
in the dummy the RedStream parameter is NULL. I though that the 2
function could be merged quite easily and in this case the difference
between the two would just some couple of lines.
Why this "feature" is needed? Looks like only sound use it but what
does it means? Sound channels are not connected to a client? Perhaps
RedStream should have different implementations instead of RedChannel?

The smartchannel separation should be done in a separate patch.

red-channel-client-private.h should be included only by red-channel-client.c.

I'll try to split some stuff.

Frediano


> ---
>  configure.ac                        |   4 +-
>  server/Makefile.am                  |   4 +
>  server/cursor-channel-client.c      |  74 ++--
>  server/cursor-channel-client.h      |  34 +-
>  server/dcc-private.h                |  14 +-
>  server/dcc.c                        | 202 ++++++++--
>  server/dcc.h                        |  37 +-
>  server/display-channel.c            |   4 +-
>  server/dummy-channel-client.c       | 157 ++++++++
>  server/dummy-channel-client.h       |  59 +++
>  server/inputs-channel-client.c      |  56 ++-
>  server/inputs-channel-client.h      |  47 ++-
>  server/main-channel-client.c        | 146 +++++++-
>  server/main-channel-client.h        |  34 +-
>  server/red-channel-client-private.h |   4 +-
>  server/red-channel-client.c         | 717
>  ++++++++++++++++++++++--------------
>  server/red-channel-client.h         |  80 +++-
>  server/red-channel.h                |  33 +-
>  server/reds.h                       |   1 +
>  server/smartcard-channel-client.c   | 414 +++++++++++++++++++++
>  server/smartcard-channel-client.h   | 114 ++++++
>  server/smartcard.c                  | 376 +++----------------
>  server/smartcard.h                  |  21 ++
>  server/sound.c                      |   9 +-
>  server/spice-server.h               |  16 +
>  server/spicevmc.c                   |   6 +-
>  server/tests/test_display_base.c    |   4 +-
>  27 files changed, 1895 insertions(+), 772 deletions(-)
>  create mode 100644 server/dummy-channel-client.c
>  create mode 100644 server/dummy-channel-client.h
>  create mode 100644 server/smartcard-channel-client.c
>  create mode 100644 server/smartcard-channel-client.h
> 


_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]