From ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Sat, 15 Dec 2012 01:16:04 +0100 Subject: query: make get_column_info() GObject-like --- libmsi/libmsi-query.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'libmsi') 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 -- cgit