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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to