* mu-query: some cleanups

This commit is contained in:
Dirk-Jan C. Binnema 2011-03-21 01:56:32 +02:00
parent 656004ee9e
commit 186e44ca66
2 changed files with 26 additions and 27 deletions

View File

@ -191,12 +191,22 @@ struct _MuQuery {
Xapian::ValueRangeProcessor* _size_range_processor;
};
gboolean
static void
uninit_mu_query (MuQuery *mqx)
{
try {
delete mqx->_db;
delete mqx->_qparser;
delete mqx->_date_range_processor;
delete mqx->_size_range_processor;
} MU_XAPIAN_CATCH_BLOCK;
}
static gboolean
init_mu_query (MuQuery *mqx, const char* dbpath)
{
mqx->_db = 0;
mqx->_qparser = 0;
try {
mqx->_db = new Xapian::Database(dbpath);
mqx->_qparser = new Xapian::QueryParser;
@ -222,30 +232,12 @@ init_mu_query (MuQuery *mqx, const char* dbpath)
} MU_XAPIAN_CATCH_BLOCK;
try {
delete mqx->_db;
delete mqx->_qparser;
} MU_XAPIAN_CATCH_BLOCK;
// things went wrong, cleanup resources
uninit_mu_query (mqx);
return FALSE;
}
static void
uninit_mu_query (MuQuery *mqx)
{
try {
delete mqx->_db;
delete mqx->_qparser;
delete mqx->_date_range_processor;
delete mqx->_size_range_processor;
} MU_XAPIAN_CATCH_BLOCK;
}
static bool
set_query (MuQuery *mqx, Xapian::Query& q, const char* searchexpr,
GError **err) {
@ -323,7 +315,7 @@ mu_query_new (const char* xpath, GError **err)
if (mu_util_xapian_is_empty (xpath))
g_warning ("database %s is empty; nothing to do", xpath);
mqx = g_new (MuQuery, 1);
mqx = g_new0 (MuQuery, 1);
if (!init_mu_query (mqx, xpath)) {
g_set_error (err, 0, MU_ERROR_INTERNAL,

View File

@ -210,6 +210,7 @@ test_mu_query_05 (void)
MuMsgIter *iter;
MuMsg *msg;
gchar *xpath;
GError *err;
xpath = fill_database ();
g_assert (xpath != NULL);
@ -217,8 +218,14 @@ test_mu_query_05 (void)
query = mu_query_new (xpath, NULL);
iter = mu_query_run (query, "fünkÿ", MU_MSG_FIELD_ID_NONE,
FALSE, 1, NULL);
msg = mu_msg_iter_get_msg (iter, NULL);
err = NULL;
msg = mu_msg_iter_get_msg (iter, &err);
if (!msg) {
g_warning ("error getting message: %s", err->message);
g_error_free (err);
g_assert_not_reached ();
}
g_assert_cmpstr (mu_msg_get_subject(msg),==,
"Greetings from Lothlórien");
g_assert_cmpstr (mu_msg_get_summary(msg,5),==,