Revision 4d5977ea
b/qobject/qdict.c | ||
---|---|---|
494 | 494 |
delete = false; |
495 | 495 |
|
496 | 496 |
if (prefix) { |
497 |
qobject_incref(value); |
|
498 | 497 |
new_key = g_strdup_printf("%s.%s", prefix, entry->key); |
499 |
qdict_put_obj(target, new_key, value); |
|
500 |
delete = true; |
|
501 | 498 |
} |
502 | 499 |
|
503 | 500 |
if (qobject_type(value) == QTYPE_QDICT) { |
501 |
/* Entries of QDicts are processed recursively, the QDict object |
|
502 |
* itself disappears. */ |
|
504 | 503 |
qdict_do_flatten(qobject_to_qdict(value), target, |
505 | 504 |
new_key ? new_key : entry->key); |
506 | 505 |
delete = true; |
506 |
} else if (prefix) { |
|
507 |
/* All other objects are moved to the target unchanged. */ |
|
508 |
qobject_incref(value); |
|
509 |
qdict_put_obj(target, new_key, value); |
|
510 |
delete = true; |
|
507 | 511 |
} |
508 | 512 |
|
509 | 513 |
g_free(new_key); |
Also available in: Unified diff