On Wed, Oct 14, 2026 at 10:05:01AM +0100, Mark Cave-Ayland wrote: > On 13/10/2026 13:06, Daniel P. Berrangé wrote: > > > Add API docs to object_property_(add/try_add/del) to recommend > > use of class properties instead. > > > > Signed-off-by: Daniel P. Berrangé <[email protected]> > > --- > > include/qom/object.h | 25 ++++++++++++++++++++++--- > > 1 file changed, 22 insertions(+), 3 deletions(-) > > > > diff --git a/include/qom/object.h b/include/qom/object.h > > index 4c0645817a5..d3fddb449f5 100644 > > --- a/include/qom/object.h > > +++ b/include/qom/object.h > > @@ -1171,6 +1171,16 @@ void object_unref(void *obj); > > * @opaque: an opaque pointer to pass to the callbacks for the property > > * @errp: pointer to error object > > * > > + * Further use of this method is deprecated. Properties for an > > + * object should be statically declared against the class, and > > + * not be permitted to vary at runtime. Use the > > + * object_class_property_add() method (and its variants) instead. > > + * > > + * If usage scenarios require differing subsets of properties > > + * to be present, this should be handled by creating further > > + * specialized subclasses instead of dynamically registering > > + * properties against instances. > > + * > > * Returns: The #ObjectProperty; this can be used to set the @resolve > > * callback for child and link properties. > > */ > > @@ -1183,9 +1193,6 @@ ObjectProperty *object_property_try_add(Object *obj, > > const char *name, > > /** > > * object_property_add: > > - * Same as object_property_try_add() with @errp hardcoded to > > - * &error_abort. > > - * > > * @obj: the object to add a property to > > * @name: the name of the property. This can contain any character > > except for > > * a forward slash. In general, you should use hyphens '-' instead of > > @@ -1202,6 +1209,12 @@ ObjectProperty *object_property_try_add(Object *obj, > > const char *name, > > * meant to allow a property to free its opaque upon object > > * destruction. This may be NULL. > > * @opaque: an opaque pointer to pass to the callbacks for the property > > + * > > + * Same as object_property_try_add() with @errp hardcoded to > > + * &error_abort. > > + * > > + * Further use of this method is deprecated, see > > + * object_property_try_add() for details. > > */ > > ObjectProperty *object_property_add(Object *obj, const char *name, > > const char *type, > > @@ -1210,6 +1223,12 @@ ObjectProperty *object_property_add(Object *obj, > > const char *name, > > ObjectPropertyRelease *release, > > void *opaque); > > +/** > > + * object_property_del: > > + * > > + * Further use of this method is deprecated, see > > + * object_property_try_add() for details. > > + */ > > void object_property_del(Object *obj, const char *name); > > ObjectProperty *object_class_property_add(ObjectClass *klass, const char > > *name, > > Looks good to me, and at least it means LLMs should pick up the recommended > usage going forward. Do we also want to update checkpatch.pl to emit a > warning if someone uses these legacy functions so that it gets flagged > during local testing/CI too?
As long as we have piles of code still using the old instance level APIs remaining to be converted, I think a checkpatch test will be too annoying. > Anyhow: > Reviewed-by: Mark Cave-Ayland <[email protected]> With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
