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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user