On 09/14/2015 11:57 AM, Markus Armbruster wrote: > Before commit 1d10b44, it crashed. Since then, it returns NULL, with > a FIXME comment. The FIXME is valid: code that assumes QObject * > can't be null exists. I'm not aware of a way to feed this problematic > return value to code that actually chokes on null in the current code, > but the next few commits will create one, failing "make check". > > Commit 481b002 solved a very similar problem by introducing a special > null QObject. Using this special null QObject is clearly the right > way to resolve this FIXME, so do that, and update the test > accordingly. > > However, the patch isn't quite right: it messes up the reference > counting. After about SIZE_MAX visits, the reference counter > overflows, failing the assertion in qnull_destroy_obj(). Because > that's many orders of magnitude more visits of nulls than we expect, > we take this patch despite its flaws, to get the QMP introspection > stuff in without further delay. > > Naturally, we'll have to fix it for real before the release. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > qapi/qmp-output-visitor.c | 8 ++++++-- > tests/test-qmp-output-visitor.c | 3 ++- > 2 files changed, 8 insertions(+), 3 deletions(-)
Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature