diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-02-08 01:59:12 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-02-08 01:59:12 +0100 |
commit | a2a6330372621a7adb1bab2ef13d67de523b3d01 (patch) | |
tree | 2cc7b493e646c5fee1a836f5d0341400bcbfcd19 /libmsi/libmsi-query.c | |
parent | 6bde332f3a326d6b4836fca11b76d2099a2b8d66 (diff) | |
download | msitools-a2a6330372621a7adb1bab2ef13d67de523b3d01.tar.gz msitools-a2a6330372621a7adb1bab2ef13d67de523b3d01.tar.xz msitools-a2a6330372621a7adb1bab2ef13d67de523b3d01.zip |
Clean-up all gcc warning
Diffstat (limited to 'libmsi/libmsi-query.c')
-rw-r--r-- | libmsi/libmsi-query.c | 45 |
1 files changed, 13 insertions, 32 deletions
diff --git a/libmsi/libmsi-query.c b/libmsi/libmsi-query.c index aa3e2b1..6653bbc 100644 --- a/libmsi/libmsi-query.c +++ b/libmsi/libmsi-query.c @@ -190,28 +190,19 @@ unsigned _libmsi_query_open( LibmsiDatabase *db, LibmsiQuery **view, const char { GError *err = NULL; unsigned r = LIBMSI_RESULT_SUCCESS; - int size = 100, res; char *query; + va_list va; + + va_start(va, fmt); + query = g_strdup_vprintf(fmt, va); + va_end(va); - /* construct the string */ - for (;;) - { - va_list va; - query = msi_alloc( size*sizeof(char) ); - va_start(va, fmt); - res = vsnprintf(query, size, fmt, va); - va_end(va); - if (res == -1) size *= 2; - else if (res >= size) size = res + 1; - else break; - msi_free( query ); - } - /* perform the query */ *view = libmsi_query_new (db, query, &err); if (err) r = err->code; g_clear_error (&err); - msi_free(query); + + g_free(query); return r; } @@ -263,29 +254,19 @@ LibmsiRecord *_libmsi_query_get_record( LibmsiDatabase *db, const char *fmt, ... LibmsiRecord *rec = NULL; LibmsiQuery *view = NULL; unsigned r; - int size = 100, res; + va_list va; char *query; GError *error = NULL; // FIXME: move error to caller - /* construct the string */ - for (;;) - { - va_list va; - query = msi_alloc( size*sizeof(char) ); - va_start(va, fmt); - res = vsnprintf(query, size, fmt, va); - va_end(va); - if (res == -1) size *= 2; - else if (res >= size) size = res + 1; - else break; - msi_free( query ); - } - /* perform the query */ + va_start(va, fmt); + query = g_strdup_vprintf(fmt, va); + va_end(va); + view = libmsi_query_new (db, query, &error); if (error) r = error->code; g_clear_error (&error); - msi_free(query); + g_free(query); if( r == LIBMSI_RESULT_SUCCESS ) { |