 2d36e84304
			
		
	
	
		2d36e84304
		
	
	
	
	
		
			
			qobject_from_jsonv() takes ownership of %p arguments. On failure, we can't generally know whether we failed before or after %p, so ownership becomes indeterminate. To avoid leaks, callers passing %p must terminate on error, e.g. by passing &error_abort. Trap for the unwary; document and give the function internal linkage. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20180806065344.7103-11-armbru@redhat.com>
		
			
				
	
	
		
			32 lines
		
	
	
		
			831 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			831 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * QObject JSON integration
 | |
|  *
 | |
|  * Copyright IBM, Corp. 2009
 | |
|  *
 | |
|  * Authors:
 | |
|  *  Anthony Liguori   <aliguori@us.ibm.com>
 | |
|  *
 | |
|  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
 | |
|  * See the COPYING.LIB file in the top-level directory.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef QJSON_H
 | |
| #define QJSON_H
 | |
| 
 | |
| QObject *qobject_from_json(const char *string, Error **errp);
 | |
| 
 | |
| QObject *qobject_from_vjsonf_nofail(const char *string, va_list ap)
 | |
|     GCC_FMT_ATTR(1, 0);
 | |
| QObject *qobject_from_jsonf_nofail(const char *string, ...)
 | |
|     GCC_FMT_ATTR(1, 2);
 | |
| QDict *qdict_from_vjsonf_nofail(const char *string, va_list ap)
 | |
|     GCC_FMT_ATTR(1, 0);
 | |
| QDict *qdict_from_jsonf_nofail(const char *string, ...)
 | |
|     GCC_FMT_ATTR(1, 2);
 | |
| 
 | |
| QString *qobject_to_json(const QObject *obj);
 | |
| QString *qobject_to_json_pretty(const QObject *obj);
 | |
| 
 | |
| #endif /* QJSON_H */
 |