QOM has the concept of both "object class" properties and "object instance" properties.
The accessor functions installed for the rarely-used class properties still take an Object *, so the *value* of such properties is still per-instance; it's just the *existence* (and type) of the property that is per-class. Of course, that's also true in practice for the great majority of "instance" properties, because they're created identically and unconditionally for every instance from the per-class instance_init hook. This also means that the (unused) object_class_property_add_*_ptr() functions don't make a lot of sense, since they require a fixed pointer which means the value of such a property would only be per-class. Given that, is there really any value to supporting the "class" properties in addition to the "instance" properties? This series is an RFC which removes all support for class properties, changing the few existing users to instance properties instead. Alternatively, if we *don't* want to remove class properties, should we instead be trying to convert the many, many "instance" properties whose existence is actually per-class to be class properties? David Gibson (4): qcrypto: Remove usage of class properties s390: Don't use class properties tests: Remove tests for class properties qom: Abolish class properties crypto/secret.c | 58 +++++++------- crypto/tlscreds.c | 44 +++++----- crypto/tlscredsanon.c | 16 ++-- crypto/tlscredsx509.c | 26 +++--- include/qom/object.h | 42 ---------- qom/object.c | 195 --------------------------------------------- target-s390x/cpu.c | 1 - target-s390x/cpu_models.c | 47 +++++------ tests/check-qom-proplist.c | 30 +++---- 9 files changed, 106 insertions(+), 353 deletions(-) -- 2.7.4