Revision b1ee5829

b/hw/qdev.c
767 767
    DeviceClass *dc = DEVICE_GET_CLASS(dev);
768 768
    BusState *bus;
769 769
    QObject *event_data;
770
    gchar *path = object_get_canonical_path(obj);
770
    bool have_realized = dev->realized;
771 771

  
772 772
    while (dev->num_child_bus) {
773 773
        bus = QLIST_FIRST(&dev->child_bus);
......
787 787
        dev->parent_bus = NULL;
788 788
    }
789 789

  
790
    if (dev->id) {
791
        event_data = qobject_from_jsonf("{ 'device': %s, 'path': %s }",
792
                                        dev->id, path);
793
    } else {
794
        event_data = qobject_from_jsonf("{ 'path': %s }", path);
790
    /* Only send event if the device had been completely realized */
791
    if (have_realized) {
792
        gchar *path = object_get_canonical_path(OBJECT(dev));
793

  
794
        if (dev->id) {
795
            event_data = qobject_from_jsonf("{ 'device': %s, 'path': %s }",
796
                                            dev->id, path);
797
        } else {
798
            event_data = qobject_from_jsonf("{ 'path': %s }", path);
799
        }
800
        monitor_protocol_event(QEVENT_DEVICE_DELETED, event_data);
801
        qobject_decref(event_data);
802
        g_free(path);
795 803
    }
796
    monitor_protocol_event(QEVENT_DEVICE_DELETED, event_data);
797
    qobject_decref(event_data);
798
    g_free(path);
799 804
}
800 805

  
801 806
static void device_class_init(ObjectClass *class, void *data)

Also available in: Unified diff