Will look at it next week. Paolo
Il lun 30 ago 2021, 17:37 Peter Maydell <[email protected]> ha scritto: > On Mon, 9 Aug 2021 at 11:40, Peter Maydell <[email protected]> > wrote: > > > > On Sat, 24 Jul 2021 at 10:00, Paolo Bonzini <[email protected]> wrote: > > > > > > This new adaptor visitor takes a single field of the adaptee, and > exposes it > > > with a different name. > > > > > > This will be used for QOM alias properties. Alias targets can of > course > > > have a different name than the alias property itself (e.g. a machine's > > > pflash0 might be an alias of a property named 'drive'). When the > target's > > > getter or setter invokes the visitor, it will use a different name than > > > what the caller expects, and the visitor will not be able to find it > > > (or will consume erroneously). > > > > > > The solution is for alias getters and setters to wrap the incoming > > > visitor, and forward the sole field that the target is expecting while > > > renaming it appropriately. > > > > > > Reviewed-by: Eric Blake <[email protected]> > > > Signed-off-by: Paolo Bonzini <[email protected]> > > > > Hi; Coverity complains here (CID 1459068) that the call to > > visit_optional() is ignoring its return value (which we check > > in 983 out of the other 989 callsites). > > Ping? It would be nice to either confirm this is a false > positive or else fix it. > > > > +static void forward_field_optional(Visitor *v, const char *name, bool > *present) > > > +{ > > > + ForwardFieldVisitor *ffv = to_ffv(v); > > > + > > > + if (!forward_field_translate_name(ffv, &name, NULL)) { > > > + *present = false; > > > + return; > > > + } > > > + visit_optional(ffv->target, name, present); > > > +} > > > > Is it right, or is this its "looks like this is returning an error > > indication" heuristic misfiring again ? > > > > My guess is the latter and it's caused by a mismatch > > between the prototype of visit_optional() (returns a > > status both by setting *present and in its return value) > > and the Visitor::optional method (returns a status only > > by setting *present, return void). I guess ideally we'd > > standardize on whether these things were intended to return > > a value or not. > > thanks > -- PMM > >
