qdict: Optimise qdict_do_flatten()
commit4d5977eaecd3675c1176274a50f74ebc40dd13ec
authorKevin Wolf <kwolf@redhat.com>
Wed, 20 Nov 2013 12:09:21 +0000 (20 13:09 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 29 Nov 2013 12:40:37 +0000 (29 13:40 +0100)
treeb7ef6123cd038b6bb5db6eb5742ebd3d9b85b010
parent6273d1136af913aaf4badc4545ccf942557c747b
qdict: Optimise qdict_do_flatten()

Nested QDicts used to be both entered recursively in order to move their
entries to the target QDict and also be moved themselves to the target
QDict like all other objects. This is harmless because for the top
level, qdict_do_flatten() will encounter the (now empty) QDict for a
second time and then delete it, but at the same time it's obviously
unnecessary overhead. Just delete nested QDicts directly after moving
all of their entries.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
qobject/qdict.c