diff options
-rw-r--r-- | include/libmsi-database.h | 1 | ||||
-rw-r--r-- | libmsi/libmsi-summary-info.c | 41 | ||||
-rw-r--r-- | tests/testdatabase.c | 12 | ||||
-rw-r--r-- | tests/testsuminfo.c | 31 | ||||
-rw-r--r-- | tools/msibuild.c | 18 | ||||
-rw-r--r-- | tools/msiinfo.c | 18 |
6 files changed, 40 insertions, 81 deletions
diff --git a/include/libmsi-database.h b/include/libmsi-database.h index a43d86e..84666e0 100644 --- a/include/libmsi-database.h +++ b/include/libmsi-database.h @@ -67,7 +67,6 @@ gboolean libmsi_database_merge (LibmsiDatabase *db, LibmsiDatabase *merge, const char *table, GError **error); -LibmsiResult libmsi_database_get_summary_info (LibmsiDatabase *, unsigned, LibmsiSummaryInfo **); LibmsiResult libmsi_database_commit (LibmsiDatabase *); diff --git a/libmsi/libmsi-summary-info.c b/libmsi/libmsi-summary-info.c index eba98d3..edec5da 100644 --- a/libmsi/libmsi-summary-info.c +++ b/libmsi/libmsi-summary-info.c @@ -541,45 +541,6 @@ static unsigned suminfo_persist( LibmsiSummaryInfo *si ) return r; } -LibmsiSummaryInfo *_libmsi_get_summary_information( LibmsiDatabase *db, unsigned uiUpdateCount ) -{ - GsfInput *stm = NULL; - LibmsiSummaryInfo *si; - unsigned r; - - TRACE("%p %d\n", db, uiUpdateCount ); - - si = libmsi_summary_info_new (db, uiUpdateCount, NULL); - - return si; -} - -LibmsiResult libmsi_database_get_summary_info( LibmsiDatabase *db, - unsigned uiUpdateCount, LibmsiSummaryInfo **psi ) -{ - LibmsiSummaryInfo *si; - unsigned ret = LIBMSI_RESULT_FUNCTION_FAILED; - - TRACE("%d %d %p\n", db, uiUpdateCount, psi); - - if( !psi ) - return LIBMSI_RESULT_INVALID_PARAMETER; - - if( !db ) - return LIBMSI_RESULT_INVALID_HANDLE; - - g_object_ref(db); - si = _libmsi_get_summary_information( db, uiUpdateCount ); - if (si) - { - *psi = si; - ret = LIBMSI_RESULT_SUCCESS; - } - - g_object_unref(db); - return ret; -} - LibmsiResult libmsi_summary_info_get_property_count (LibmsiSummaryInfo *si, unsigned *pCount) { TRACE("%d %p\n", si, pCount); @@ -912,7 +873,7 @@ unsigned msi_add_suminfo( LibmsiDatabase *db, char ***records, int num_records, unsigned i, j; LibmsiSummaryInfo *si; - si = _libmsi_get_summary_information( db, num_records * (num_columns / 2) ); + si = libmsi_summary_info_new (db, num_records * (num_columns / 2), NULL); if (!si) { ERR("no summary information!\n"); diff --git a/tests/testdatabase.c b/tests/testdatabase.c index 7652e24..6aebd5e 100644 --- a/tests/testdatabase.c +++ b/tests/testdatabase.c @@ -1150,8 +1150,8 @@ static void test_streamtable(void) g_object_unref( query ); /* create a summary information stream */ - r = libmsi_database_get_summary_info( hdb, 1, &hsi ); - ok( r == LIBMSI_RESULT_SUCCESS, "Failed to get summary information handle: %u\n", r ); + hsi = libmsi_summary_info_new (hdb, 1, NULL); + ok(hsi, "Failed to get summary information handle: %u\n", r ); libmsi_summary_info_set_int(hsi, LIBMSI_PROPERTY_SECURITY, 2, &error); ok(!error, "Failed to set property\n"); @@ -1731,8 +1731,8 @@ static void test_suminfo_import(void) /* ...its data is added to the special summary information stream */ - r = libmsi_database_get_summary_info(hdb, 0, &hsi); - ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r); + hsi = libmsi_summary_info_new(hdb, 0, NULL); + ok(hsi, "libmsi_summary_info_new() failed"); r = libmsi_summary_info_get_property_count(hsi, &count); ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r); @@ -2409,8 +2409,8 @@ static unsigned set_summary_info(LibmsiDatabase *hdb) LibmsiSummaryInfo *suminfo; /* build summary info */ - res = libmsi_database_get_summary_info(hdb, 7, &suminfo); - ok( res == LIBMSI_RESULT_SUCCESS , "Failed to open summaryinfo\n" ); + suminfo = libmsi_summary_info_new(hdb, 7, NULL); + ok(suminfo , "Failed to open summaryinfo\n" ); libmsi_summary_info_set_string (suminfo, 2, "Installation Database", &error); ok(!error, "Failed to set summary info\n"); diff --git a/tests/testsuminfo.c b/tests/testsuminfo.c index 5a6d40d..76a7911 100644 --- a/tests/testsuminfo.c +++ b/tests/testsuminfo.c @@ -50,16 +50,13 @@ static void test_suminfo(void) hdb = libmsi_database_new(msifile, LIBMSI_DB_OPEN_CREATE, NULL); ok(hdb, "libmsi_database_new failed\n"); - r = libmsi_database_get_summary_info(hdb, 0, NULL); - ok(r == LIBMSI_RESULT_INVALID_PARAMETER, "libmsi_database_get_summary_info wrong error\n"); - - r = libmsi_database_get_summary_info(hdb, 0, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed %u\n", r); + hsuminfo = libmsi_summary_info_new(hdb, 0, NULL); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); g_object_unref(hsuminfo); - r = libmsi_database_get_summary_info(hdb, 0, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed %u\n", r); + hsuminfo = libmsi_summary_info_new(hdb, 0, NULL); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); r = libmsi_summary_info_get_property_count(0, NULL); ok(r == LIBMSI_RESULT_INVALID_HANDLE, "getpropcount failed\n"); @@ -87,8 +84,8 @@ static void test_suminfo(void) g_object_unref(hsuminfo); /* try again with the update count set */ - r = libmsi_database_get_summary_info(hdb, 1, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n"); + hsuminfo = libmsi_summary_info_new(hdb, 1, NULL); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); libmsi_summary_info_set_string(hsuminfo, 0, NULL, &error); g_assert_error(error, LIBMSI_RESULT_ERROR, LIBMSI_RESULT_DATATYPE_MISMATCH); @@ -143,8 +140,8 @@ static void test_suminfo(void) g_object_unref(hsuminfo); /* try again with a higher update count */ - r = libmsi_database_get_summary_info(hdb, 10, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n"); + hsuminfo = libmsi_summary_info_new(hdb, 10, NULl); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); libmsi_summary_info_set_string(hsuminfo, LIBMSI_PROPERTY_TITLE, "JungAh", &error); ok(!error, "libmsi_summary_info_set_property failed\n"); @@ -175,8 +172,8 @@ static void test_suminfo(void) hdb = libmsi_database_new(msifile, LIBMSI_DB_OPEN_TRANSACT, NULL); ok(hdb, "libmsi_database_new failed\n"); - r = libmsi_database_get_summary_info(hdb, 1, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n"); + hsuminfo = libmsi_summary_info_new(hdb, 1, NULl); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); r = libmsi_summary_info_set_string(hsuminfo, LIBMSI_PROPERTY_AUTHOR, "Mike", error); ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property wrong error\n"); @@ -192,8 +189,8 @@ static void test_suminfo(void) hdb = libmsi_database_new(msifile, LIBMSI_DB_OPEN_READONLY, NULL); ok(hdb, "libmsi_database_new failed\n"); - r = libmsi_database_get_summary_info(hdb, 0, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed %u\n", r); + hsuminfo = libmsi_summary_info_new(hdb, 0, NULL); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); libmsi_summary_info_set_string(hsuminfo, LIBMSI_PROPERTY_AUTHOR, "Mike", &error); todo_wine ok(error, "libmsi_summary_info_set_property wrong error\n"); @@ -342,8 +339,8 @@ static void test_summary_binary(void) hdb = libmsi_database_new(msifile, LIBMSI_DB_OPEN_READONLY, NULl); ok(hdb, "libmsi_database_new failed\n"); - r = libmsi_database_get_summary_info(hdb, 0, &hsuminfo); - ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n"); + hsuminfo = libmsi_summary_info_new(hdb, 0, NULL); + ok(hsuminfo, "libmsi_database_get_summary_info failed\n"); /* * Check what reading LIBMSI_PROPERTY_LASTPRINTED does... diff --git a/tools/msibuild.c b/tools/msibuild.c index 50cbd6a..ff69cc4 100644 --- a/tools/msibuild.c +++ b/tools/msibuild.c @@ -82,7 +82,7 @@ static gboolean init_suminfo(LibmsiSummaryInfo *si, GError **error) static LibmsiResult open_database(const char *msifile, LibmsiDatabase **db, LibmsiSummaryInfo **si, GError **error) { - LibmsiResult r; + LibmsiResult r = LIBMSI_RESULT_SUCCESS; struct stat st; if (stat(msifile, &st) == -1) @@ -91,11 +91,11 @@ static LibmsiResult open_database(const char *msifile, LibmsiDatabase **db, if (!*db) return LIBMSI_RESULT_FUNCTION_FAILED; - r = libmsi_database_get_summary_info(*db, INT_MAX, si); - if (r != LIBMSI_RESULT_SUCCESS) + *si = libmsi_summary_info_new(*db, INT_MAX, error); + if (!*si) { - fprintf(stderr, "failed to open summary info (%u)\n", r); - return r; + fprintf(stderr, "failed to open summary info\n"); + return LIBMSI_RESULT_FUNCTION_FAILED; } if (!init_suminfo(*si, error)) @@ -115,11 +115,11 @@ static LibmsiResult open_database(const char *msifile, LibmsiDatabase **db, if (!*db) return LIBMSI_RESULT_FUNCTION_FAILED; - r = libmsi_database_get_summary_info(*db, INT_MAX, si); - if (r != LIBMSI_RESULT_SUCCESS) + *si = libmsi_summary_info_new(*db, INT_MAX, error); + if (!*si) { - fprintf(stderr, "failed to open summary info (%u)\n", r); - return r; + fprintf(stderr, "failed to open summary info\n"); + return LIBMSI_RESULT_FUNCTION_FAILED; } } diff --git a/tools/msiinfo.c b/tools/msiinfo.c index a9786d8..eb44035 100644 --- a/tools/msiinfo.c +++ b/tools/msiinfo.c @@ -319,12 +319,11 @@ static int cmd_suminfo(struct Command *cmd, int argc, char **argv, GError **erro db = libmsi_database_new(argv[1], LIBMSI_DB_OPEN_READONLY, error); if (!db) - return 1; + goto end; - r = libmsi_database_get_summary_info(db, 0, &si); - if (r) { - print_libmsi_error(r); - } + si = libmsi_summary_info_new(db, 0, error); + if (!si) + goto end; print_suminfo(si, LIBMSI_PROPERTY_TITLE, "Title"); print_suminfo(si, LIBMSI_PROPERTY_SUBJECT, "Subject"); @@ -345,10 +344,13 @@ static int cmd_suminfo(struct Command *cmd, int argc, char **argv, GError **erro print_suminfo(si, LIBMSI_PROPERTY_APPNAME, "Application"); print_suminfo(si, LIBMSI_PROPERTY_SECURITY, "Security"); - g_object_unref(db); - g_object_unref(si); + end: + if (db) + g_object_unref(db); + if (si) + g_object_unref(si); - return 0; + return *error ? 1 : 0; } static void full_write(int fd, char *buf, size_t sz) |