qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 0/3] Extract non-QDicts in qdict_array_split()


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH 0/3] Extract non-QDicts in qdict_array_split()
Date: Wed, 26 Feb 2014 18:16:02 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

On 21.02.2014 23:32, Eric Blake wrote:
On 02/21/2014 11:11 AM, Max Reitz wrote:
Currently, qdict_array_split() splits a QDict like
   { "0.a": 42, "1": 23, "2.b": 84 }
into the QList
   [ { "a": 42 } ]
with the QDict still being
   { "1": 23, "2.b": 84 }

However, it makes more sense to create the QList
   [ { "a": 42 }, 23, { "b": 84 } ]
and having emptied the QDict.

This is implemented by this series.

Question - in the code, we have a comment:

/**
  * qdict_flatten(): For each nested QDict with key x, all fields with key y
  * are moved to this QDict and their key is renamed to "x.y". For each
nested
  * QList with key x, the field at index y is moved to this QDict with
the key
  * "x.y" (i.e., the reverse of what qdict_array_split() does).
  * This operation is applied recursively for nested QDicts and QLists.
  */

With your new split rules, do we need a followup patch to qdict_flatten
that can regenerate the QDict with "%u" keys for non-dict members of the
QList?

If you want qdict_flatten() to return a QDict with "%u" keys, you'd have to specify a QList. However, this would no longer be a qdict_flatten(), but rather a qlist_flatten().

It would be easy to make use of qdict_flatten_qdict() and qdict_flatten_qlist() to implement qlist_flatten() as well, but since there is currently no such function, apparently there is no need for it. Of course, I could just implement it preemptively, but then I'd probably be asked for its purpose. ;-)


Max



reply via email to

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