> > 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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel