diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-12-15 01:16:04 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-01-09 13:56:06 +0100 |
commit | ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84 (patch) | |
tree | 976ff7ecb007cbd8338ddfdbd25b282fe1acc49a /libmsi/libmsi-query.c | |
parent | 032e8f05e3381311a0ea37531e2cdc6b29e80bf5 (diff) | |
download | msitools-ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84.tar.gz msitools-ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84.tar.xz msitools-ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84.zip |
query: make get_column_info() GObject-like
Diffstat (limited to 'libmsi/libmsi-query.c')
-rw-r--r-- | libmsi/libmsi-query.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/libmsi/libmsi-query.c b/libmsi/libmsi-query.c index 17b80d2..848fbfa 100644 --- a/libmsi/libmsi-query.c +++ b/libmsi/libmsi-query.c @@ -532,7 +532,7 @@ static void msi_set_record_type_string( LibmsiRecord *rec, unsigned field, libmsi_record_set_string( rec, field, szType ); } -unsigned _libmsi_query_get_column_info( LibmsiQuery *query, LibmsiColInfo info, LibmsiRecord **prec ) +LibmsiResult _libmsi_query_get_column_info( LibmsiQuery *query, LibmsiColInfo info, LibmsiRecord **prec ) { unsigned r = LIBMSI_RESULT_FUNCTION_FAILED, i, count = 0, type; LibmsiRecord *rec; @@ -571,26 +571,28 @@ unsigned _libmsi_query_get_column_info( LibmsiQuery *query, LibmsiColInfo info, return LIBMSI_RESULT_SUCCESS; } -LibmsiResult libmsi_query_get_column_info(LibmsiQuery *query, LibmsiColInfo info, LibmsiRecord **prec) +LibmsiRecord * +libmsi_query_get_column_info (LibmsiQuery *query, LibmsiColInfo info, GError **error) { + LibmsiRecord *rec; unsigned r; - TRACE("%d %d %p\n", query, info, prec); - - if( !prec ) - return LIBMSI_RESULT_INVALID_PARAMETER; + TRACE("%p %d\n", query, info); - if( info != LIBMSI_COL_INFO_NAMES && info != LIBMSI_COL_INFO_TYPES ) - return LIBMSI_RESULT_INVALID_PARAMETER; + if (info != LIBMSI_COL_INFO_NAMES && info != LIBMSI_COL_INFO_TYPES) + return NULL; - if( !query ) - return LIBMSI_RESULT_INVALID_HANDLE; + if (!query) + return NULL; g_object_ref(query); - r = _libmsi_query_get_column_info( query, info, prec ); + r = _libmsi_query_get_column_info( query, info, &rec); g_object_unref(query); - return r; + if (r != LIBMSI_RESULT_SUCCESS) + g_set_error_literal (error, LIBMSI_RESULT_ERROR, r, G_STRFUNC); + + return rec; } void |