mirror of
https://git.proxmox.com/git/qemu
synced 2025-06-16 03:37:59 +00:00
Add qdict_clone_shallow()
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
de9c0cec6c
commit
b382bc9a15
@ -64,4 +64,6 @@ int64_t qdict_get_try_int(const QDict *qdict, const char *key,
|
|||||||
int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value);
|
int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value);
|
||||||
const char *qdict_get_try_str(const QDict *qdict, const char *key);
|
const char *qdict_get_try_str(const QDict *qdict, const char *key);
|
||||||
|
|
||||||
|
QDict *qdict_clone_shallow(const QDict *src);
|
||||||
|
|
||||||
#endif /* QDICT_H */
|
#endif /* QDICT_H */
|
||||||
|
@ -400,6 +400,28 @@ const QDictEntry *qdict_next(const QDict *qdict, const QDictEntry *entry)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdict_clone_shallow(): Clones a given QDict. Its entries are not copied, but
|
||||||
|
* another reference is added.
|
||||||
|
*/
|
||||||
|
QDict *qdict_clone_shallow(const QDict *src)
|
||||||
|
{
|
||||||
|
QDict *dest;
|
||||||
|
QDictEntry *entry;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
dest = qdict_new();
|
||||||
|
|
||||||
|
for (i = 0; i < QDICT_BUCKET_MAX; i++) {
|
||||||
|
QLIST_FOREACH(entry, &src->table[i], next) {
|
||||||
|
qobject_incref(entry->value);
|
||||||
|
qdict_put_obj(dest, entry->key, entry->value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qentry_destroy(): Free all the memory allocated by a QDictEntry
|
* qentry_destroy(): Free all the memory allocated by a QDictEntry
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user