diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-12-17 16:48:41 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-01-09 13:56:07 +0100 |
commit | ed86a69201348840af97c58955c3ab8dee986282 (patch) | |
tree | 30487c9bb1e6e935ed36790ef2206f868e564720 /libmsi | |
parent | 1bf7dffae6f62248a1ea6e1ac38067d02c9b3d41 (diff) | |
download | msitools-ed86a69201348840af97c58955c3ab8dee986282.tar.gz msitools-ed86a69201348840af97c58955c3ab8dee986282.tar.xz msitools-ed86a69201348840af97c58955c3ab8dee986282.zip |
Add more public functions precondition checks
Diffstat (limited to 'libmsi')
-rw-r--r-- | libmsi/libmsi-database.c | 26 | ||||
-rw-r--r-- | libmsi/libmsi-query.c | 25 | ||||
-rw-r--r-- | libmsi/libmsi-summary-info.c | 15 |
3 files changed, 40 insertions, 26 deletions
diff --git a/libmsi/libmsi-database.c b/libmsi/libmsi-database.c index 66fa04d..c66d4de 100644 --- a/libmsi/libmsi-database.c +++ b/libmsi/libmsi-database.c @@ -1350,10 +1350,12 @@ libmsi_database_export (LibmsiDatabase *db, { unsigned r = LIBMSI_RESULT_OUTOFMEMORY; - TRACE("%x %s %d\n", db, debugstr_a(szTable), fd); + TRACE("%p %s %d\n", db, debugstr_a(szTable), fd); - if( !db ) - return LIBMSI_RESULT_INVALID_HANDLE; + g_return_val_if_fail (LIBMSI_IS_DATABASE (db), FALSE); + g_return_val_if_fail (table, FALSE); + g_return_val_if_fail (fd >= 0, FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); g_object_ref(db); r = _libmsi_database_export(db, table, fd); @@ -2002,6 +2004,7 @@ libmsi_database_merge (LibmsiDatabase *db, g_return_val_if_fail (LIBMSI_IS_DATABASE (db), FALSE); g_return_val_if_fail (LIBMSI_IS_DATABASE (merge), FALSE); g_return_val_if_fail (!tablename || *tablename, FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); g_object_ref(db); g_object_ref(merge); @@ -2217,15 +2220,17 @@ end: **/ gboolean libmsi_database_apply_transform (LibmsiDatabase *db, - const char *szTransformFile, + const char *file, GError **error) { unsigned r; + g_return_val_if_fail (LIBMSI_IS_DATABASE (db), FALSE); + g_return_val_if_fail (file, FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); + g_object_ref(db); - if( !db ) - return LIBMSI_RESULT_INVALID_HANDLE; - r = _libmsi_database_apply_transform( db, szTransformFile ); + r = _libmsi_database_apply_transform (db, file); g_object_unref(db); if (r != LIBMSI_RESULT_SUCCESS) @@ -2326,6 +2331,7 @@ libmsi_database_commit (LibmsiDatabase *db, GError **error) TRACE ("%p\n", db); g_return_val_if_fail (LIBMSI_IS_DATABASE (db), FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); g_object_ref(db); if (db->mode == LIBMSI_DB_OPEN_READONLY) @@ -2465,8 +2471,9 @@ libmsi_database_get_primary_keys (LibmsiDatabase *db, TRACE("%d %s %p\n", db, debugstr_a(table), prec); - if( !db ) - return NULL; + g_return_val_if_fail (LIBMSI_IS_DATABASE (db), NULL); + g_return_val_if_fail (table != NULL, NULL); + g_return_val_if_fail (!error || *error == NULL, NULL); g_object_ref(db); r = _libmsi_database_get_primary_keys(db, table, &rec); @@ -2552,6 +2559,7 @@ libmsi_database_new (const gchar *path, const char *persist, GError **error) gboolean patch = false; g_return_val_if_fail (path != NULL, NULL); + g_return_val_if_fail (!error || *error == NULL, NULL); if (IS_INTMSIDBOPEN (persist - LIBMSI_DB_OPEN_PATCHFILE)) { TRACE("Database is a patch\n"); diff --git a/libmsi/libmsi-query.c b/libmsi/libmsi-query.c index 1a951c9..c4e919b 100644 --- a/libmsi/libmsi-query.c +++ b/libmsi/libmsi-query.c @@ -415,8 +415,9 @@ libmsi_query_fetch (LibmsiQuery *query, GError **error) TRACE("%p\n", query); - if( !query ) - return NULL; + g_return_val_if_fail (LIBMSI_IS_QUERY (query), NULL); + g_return_val_if_fail (!error || *error == NULL, NULL); + g_object_ref(query); ret = _libmsi_query_fetch( query, &record ); g_object_unref(query); @@ -445,8 +446,8 @@ libmsi_query_close (LibmsiQuery *query, GError **error) TRACE("%p\n", query ); - if( !query ) - return LIBMSI_RESULT_INVALID_HANDLE; + g_return_val_if_fail (LIBMSI_IS_QUERY (query), FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); g_object_ref(query); view = query->view; @@ -497,7 +498,11 @@ libmsi_query_execute (LibmsiQuery *query, LibmsiRecord *rec, GError **error) { LibmsiResult ret; - TRACE("%d %d\n", query, rec); + TRACE("%p %p\n", query, rec); + + g_return_val_if_fail (LIBMSI_IS_QUERY (query), FALSE); + g_return_val_if_fail (!rec || LIBMSI_IS_RECORD (rec), FALSE); + g_return_val_if_fail (!error || *error == NULL, FALSE); if( !query ) return LIBMSI_RESULT_INVALID_HANDLE; @@ -614,11 +619,10 @@ libmsi_query_get_column_info (LibmsiQuery *query, LibmsiColInfo info, GError **e TRACE("%p %d\n", query, info); - if (info != LIBMSI_COL_INFO_NAMES && info != LIBMSI_COL_INFO_TYPES) - return NULL; - - if (!query) - return NULL; + g_return_val_if_fail (LIBMSI_IS_QUERY (query), NULL); + g_return_val_if_fail (info == LIBMSI_COL_INFO_NAMES || + info == LIBMSI_COL_INFO_TYPES, NULL); + g_return_val_if_fail (!error || *error == NULL, NULL); g_object_ref(query); r = _libmsi_query_get_column_info( query, info, &rec); @@ -644,6 +648,7 @@ libmsi_query_get_error (LibmsiQuery *query, gchar **column, GError **error) LibmsiView *v; g_return_if_fail (LIBMSI_IS_QUERY (query)); + g_return_if_fail (!column || *column == NULL); g_return_if_fail (!error || *error == NULL); v = query->view; diff --git a/libmsi/libmsi-summary-info.c b/libmsi/libmsi-summary-info.c index 01410a0..d8b5ed7 100644 --- a/libmsi/libmsi-summary-info.c +++ b/libmsi/libmsi-summary-info.c @@ -678,8 +678,8 @@ libmsi_summary_info_get_int (LibmsiSummaryInfo *self, LibmsiProperty prop, LibmsiPropertyType type; gint val; - g_return_val_if_fail (LIBMSI_SUMMARY_INFO (self), FALSE); - g_return_val_if_fail (!error || *error == NULL, FALSE); + g_return_val_if_fail (LIBMSI_SUMMARY_INFO (self), -1); + g_return_val_if_fail (!error || *error == NULL, -1); type = LIBMSI_PROPERTY_TYPE_INT; _summary_info_get_property (self, prop, &type, &val, @@ -703,8 +703,8 @@ libmsi_summary_info_get_filetime (LibmsiSummaryInfo *self, LibmsiProperty prop, LibmsiPropertyType type; guint64 val; - g_return_val_if_fail (LIBMSI_SUMMARY_INFO (self), FALSE); - g_return_val_if_fail (!error || *error == NULL, FALSE); + g_return_val_if_fail (LIBMSI_SUMMARY_INFO (self), 0); + g_return_val_if_fail (!error || *error == NULL, 0); type = LIBMSI_PROPERTY_TYPE_FILETIME; _summary_info_get_property (self, prop, &type, NULL, @@ -996,13 +996,11 @@ libmsi_summary_info_persist (LibmsiSummaryInfo *si, GError **error) { unsigned ret; + g_return_val_if_fail (LIBMSI_IS_SUMMARY_INFO (si), FALSE); g_return_val_if_fail (!error || *error == NULL, FALSE); TRACE("%p\n", si); - if (!si) - return FALSE; - g_object_ref (si); ret = suminfo_persist (si); g_object_unref (si); @@ -1027,6 +1025,9 @@ libmsi_summary_info_new (LibmsiDatabase *database, unsigned update_count, { LibmsiSummaryInfo *self; + g_return_val_if_fail (LIBMSI_IS_DATABASE (database), NULL); + g_return_val_if_fail (!error || *error == NULL, NULL); + self = g_object_new (LIBMSI_TYPE_SUMMARY_INFO, "database", database, "update-count", update_count, |