ack ----- Original Message ----- > The code is currently removing the USB device that is gone from > the SpiceUsbDeviceManager::devices array after the device-removed > signal has been emitted. As signal handlers are called synchronously, > this means that the list returned by > spice_usb_device_manager_get_devices() will still contain the > removed device if it's called from the signal handler. > --- > gtk/usb-device-manager.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c > index 34ff37c..eafed7c 100644 > --- a/gtk/usb-device-manager.c > +++ b/gtk/usb-device-manager.c > @@ -786,8 +786,10 @@ static void > spice_usb_device_manager_remove_dev(SpiceUsbDeviceManager *self, > spice_usb_device_manager_disconnect_device(self, device); > > SPICE_DEBUG("device removed %p", device); > - g_signal_emit(self, signals[DEVICE_REMOVED], 0, device); > + spice_usb_device_ref(device); > g_ptr_array_remove(priv->devices, device); > + g_signal_emit(self, signals[DEVICE_REMOVED], 0, device); > + spice_usb_device_unref(device); > } > > static void spice_usb_device_manager_uevent_cb(GUdevClient > *client, > @@ -1170,8 +1172,10 @@ > _spice_usb_device_manager_connect_device_async(SpiceUsbDeviceManager > *self, > * So remove the device now > */ > SPICE_DEBUG("libdev does not exist for %p -- removing", > device); > - g_signal_emit(self, signals[DEVICE_REMOVED], 0, device); > + spice_usb_device_ref(device); > g_ptr_array_remove(priv->devices, device); > + g_signal_emit(self, signals[DEVICE_REMOVED], 0, device); > + spice_usb_device_unref(device); > #endif > g_simple_async_result_set_error(result, > SPICE_CLIENT_ERROR, > -- > 1.8.1.4 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel