summaryrefslogtreecommitdiffstats
path: root/libmsi/libmsi-query.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-02-08 01:59:12 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-02-08 01:59:12 +0100
commita2a6330372621a7adb1bab2ef13d67de523b3d01 (patch)
tree2cc7b493e646c5fee1a836f5d0341400bcbfcd19 /libmsi/libmsi-query.c
parent6bde332f3a326d6b4836fca11b76d2099a2b8d66 (diff)
downloadmsitools-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.c45
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 )
{