X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fconfig.cc;h=efab01e400708fde51470b85eee3102482f59a4e;hb=852df1a7ef373a0fcd478c30fb4b596bbffbdef3;hp=292f0288d7ef2f95e171efe9bf63b4bd8fe42c64;hpb=dc2b5a031bb63cd71133237ca5d74ef1223a8925;p=notmuch diff --git a/lib/config.cc b/lib/config.cc index 292f0288..efab01e4 100644 --- a/lib/config.cc +++ b/lib/config.cc @@ -45,22 +45,20 @@ notmuch_database_set_config (notmuch_database_t *notmuch, const char *value) { notmuch_status_t status; - Xapian::WritableDatabase *db; status = _notmuch_database_ensure_writable (notmuch); if (status) return status; try { - db = static_cast (notmuch->xapian_db); - db->set_metadata (CONFIG_PREFIX + key, value); + notmuch->writable_xapian_db->set_metadata (CONFIG_PREFIX + key, value); } catch (const Xapian::Error &error) { status = NOTMUCH_STATUS_XAPIAN_EXCEPTION; notmuch->exception_reported = true; _notmuch_database_log (notmuch, "Error: A Xapian exception occurred setting metadata: %s\n", error.get_msg ().c_str ()); } - return NOTMUCH_STATUS_SUCCESS; + return status; } static notmuch_status_t @@ -115,7 +113,6 @@ notmuch_database_get_config_list (notmuch_database_t *notmuch, goto DONE; } - talloc_set_destructor (list, _notmuch_config_list_destroy); list->notmuch = notmuch; list->current_key = NULL; list->current_val = NULL; @@ -124,6 +121,7 @@ notmuch_database_get_config_list (notmuch_database_t *notmuch, new(&(list->iterator)) Xapian::TermIterator (notmuch->xapian_db->metadata_keys_begin (CONFIG_PREFIX + (prefix ? prefix : ""))); + talloc_set_destructor (list, _notmuch_config_list_destroy); } catch (const Xapian::Error &error) { _notmuch_database_log (notmuch, "A Xapian exception occurred getting metadata iterator: %s.\n",