So this is the same series as yesterday, but it is all rebased on Frediano's patch that makes PipeItem ref-counted (as opposed to introducing a separate RedPipeItem on top which is ref-counted). Due to this change, we can take advantage of the base class refcounting for several other PipeItems as well, so I've added several additional patches which do that. At the end, I do a mass rename from PipeItem to RedPipeItem and then rename all of the inherited PipeItem classes to use the Red prefix as well. This is fairly invasive so it may be best to delay this until after the branch is fully merged -- comments appreciated. Note that several of these patches are already ACKed but I'm re-sending the whole series since everythign was rebased on an early patch that was significantly changed. Christophe Fergeau (10): Add reference counting to PipeItem class reds: Derive VDIPortReadBuf from PipeItem smartcard: Use base PipeItem for MsgItem refcounting SpiceVmcPipeItem: use base PipeItem for ref counting char-device: Replace RedCharDeviceMsgToClient with PipeItem char-device: Remove RedCharDeviceClass::{un, }ref_msg_to_client Replace RedCharDevice::on_free_self_token with a signal Remove use of opaque from vdi_port_read_one_msg_from_device Use GQueue for RedCharDevice::send_queue Use weak gobject ref instead of reds_on_char_device_state_destroy Jonathon Jongsma (10): dcc: use PipeItem refcounting for ImageItem DrawablePipeItem: use base class for refcounting StreamClipItem: use base class refcounting UpgradeItem: use base PipeItem for refcounting dcc: Use refcounting for MonitorsConfigItem char-device: notify when device instance is changed char device: use 'device' rather than 'state' for var names char device: use _reset_dev_instance() to set 'sin' Rename PipeItem to RedPipeItem Rename all RedPipeItem subclasses server/Makefile.am | 2 + server/cache-item.h | 8 +- server/cache-item.tmpl.c | 18 +-- server/char-device.c | 172 +++++++++++++--------------- server/char-device.h | 19 +--- server/cursor-channel.c | 91 ++++++++------- server/dcc-send.c | 181 +++++++++++++++-------------- server/dcc.c | 281 ++++++++++++++++++++------------------------- server/dcc.h | 50 ++++---- server/display-channel.c | 38 +++---- server/display-channel.h | 56 ++++----- server/inputs-channel.c | 66 +++++------ server/main-channel.c | 291 ++++++++++++++++++++++++----------------------- server/red-channel.c | 93 +++++++-------- server/red-channel.h | 53 ++++----- server/red-pipe-item.c | 53 +++++++++ server/red-pipe-item.h | 46 ++++++++ server/red-worker.h | 18 +-- server/reds.c | 150 ++++++++++++------------ server/reds.h | 1 - server/smartcard.c | 124 +++++++++----------- server/spicevmc.c | 120 ++++++++----------- server/stream.c | 62 ++++++---- server/stream.h | 22 ++-- 24 files changed, 999 insertions(+), 1016 deletions(-) create mode 100644 server/red-pipe-item.c create mode 100644 server/red-pipe-item.h -- 2.4.11 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel