diff mbox series

[v3,15/19] hw/virtio/virtio-pci: Constify base_type_info

Message ID 20250212213249.45574-16-philmd@linaro.org
State New
Headers show
Series qom: Constify class_data | expand

Commit Message

Philippe Mathieu-Daudé Feb. 12, 2025, 9:32 p.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/virtio/virtio-pci.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 9512590c936..a33d1b2cbcf 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2475,13 +2475,16 @@  void virtio_pci_types_register(const VirtioPCIDeviceTypeInfo *t)
     g_autofree char *base_name = single_generic_device
                                  ? g_strconcat(t->generic_name, "-base-type", NULL)
                                  : NULL;
-    TypeInfo base_type_info = {
+    const TypeInfo base_type_info = {
         .name          = t->base_name ?: base_name,
         .parent        = t->parent ? t->parent : TYPE_VIRTIO_PCI,
         .instance_size = t->instance_size,
         .instance_init = t->instance_init,
         .instance_finalize = t->instance_finalize,
         .class_size    = t->class_size,
+        .class_init    = t->base_name ? virtio_pci_base_class_init
+                                      : virtio_pci_generic_class_init,
+        .class_data    = t->base_name ? t : NULL,
         .abstract      = true,
         .interfaces    = t->interfaces,
     };
@@ -2499,18 +2502,14 @@  void virtio_pci_types_register(const VirtioPCIDeviceTypeInfo *t)
     assert(t->base_name || !t->non_transitional_name);
     assert(t->base_name || !t->transitional_name);
 
-    if (!t->base_name) {
-        base_type_info.class_init = virtio_pci_generic_class_init;
+    type_register_static(&base_type_info);
 
+    if (!t->base_name) {
         generic_type_info.parent = base_name;
         generic_type_info.class_init = virtio_pci_base_class_init;
         generic_type_info.class_data = t;
-    } else {
-        base_type_info.class_init = virtio_pci_base_class_init;
-        base_type_info.class_data = t;
     }
 
-    type_register_static(&base_type_info);
     if (generic_type_info.name) {
         type_register_static(&generic_type_info);
     }