aboutsummaryrefslogtreecommitdiff
path: root/database.cc
diff options
context:
space:
mode:
Diffstat (limited to 'database.cc')
-rw-r--r--database.cc9
1 files changed, 3 insertions, 6 deletions
diff --git a/database.cc b/database.cc
index 1aef2a9..e73e210 100644
--- a/database.cc
+++ b/database.cc
@@ -456,10 +456,8 @@ notmuch_database_open (const char *path)
xapian_path = g_strdup_printf ("%s/%s", notmuch_path, "xapian");
- /* C++ is so nasty in requiring these casts. I'm almost tempted to
- * write a C wrapper for Xapian... */
- notmuch = (notmuch_database_t *) xmalloc (sizeof (notmuch_database_t));
- notmuch->path = xstrdup (path);
+ notmuch = talloc (NULL, notmuch_database_t);
+ notmuch->path = talloc_strdup (notmuch, path);
try {
notmuch->xapian_db = new Xapian::WritableDatabase (xapian_path,
@@ -488,8 +486,7 @@ notmuch_database_close (notmuch_database_t *notmuch)
{
delete notmuch->query_parser;
delete notmuch->xapian_db;
- free (notmuch->path);
- free (notmuch);
+ talloc_free (notmuch);
}
const char *