summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/libmsi-database.h1
-rw-r--r--libmsi/libmsi-summary-info.c41
-rw-r--r--tests/testdatabase.c12
-rw-r--r--tests/testsuminfo.c31
-rw-r--r--tools/msibuild.c18
-rw-r--r--tools/msiinfo.c18
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)