qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] qobject/qjson.c:69: failed assertion `obj != NULL'


From: Markus Armbruster
Subject: Re: [Qemu-devel] qobject/qjson.c:69: failed assertion `obj != NULL'
Date: Tue, 22 Nov 2016 11:06:30 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eric Blake <address@hidden> writes:

> On 11/21/2016 02:36 PM, Eric Blake wrote:
>> The source of your problem is that your platform defines PRId64 as 'qd',
>> but the qemu JSON parser only recognizes lld (POSIX) or I64d (mingw) for
>> parsing 64-bit numbers.  We could enhance the JSON parser to recognize
>> the non-standard qd in addition to the hack we already have for mingw,

Yes...

>> but I'd argue that using qobject_from_jsonf() is already less-than-useful.
>
> In fact, we are down to only a handful of users of our modified 'jsonf'
> format (that is, strings that mix JSON with % modifiers):
>
> hw/pci/pcie_aer.c: build a 5-element QDict
> monitor.c: build a 1-element QDict which contains a 2-element QDict
> qapi/qmp-dispatch.c: build a 2-element QDict
> qapi/qmp-event.c: Build a 2-element QDict
>
> plus the testsuite (check-qjson.c).

How did you find them?

>>   It's hard to argue that the
>> complexity of maintaining our pseudo-printf JSON parser for constructing
>> a QObject with one line is worth the effort compared to the three or
>> four lines to construct the same QObject by hand.
>
> I'm severely tempted to just rip out all of the poorly-underdocumented %
> parsing from the JSON parser, as it will simplify our code, without much
> pain in converting the four real users to just manually build up the
> same objects.

I kind of like the %-escapes, because they provide a compact and legible
way to build QObjects.  But with so little use, they're hardly earning
their keep.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]