Convert notmuch_database_t to start using talloc.
authorCarl Worth <cworth@cworth.org>
Wed, 21 Oct 2009 21:00:37 +0000 (14:00 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 21 Oct 2009 21:00:37 +0000 (14:00 -0700)
This will be handy as we can hang future talloc allocations off
of the datbase now.

database.cc

index 1aef2a966ec3fb431ff3b6f92735f0fdb57f4326..e73e210d1071658609f31fbceacbce0b35a13e4e 100644 (file)
@@ -456,10 +456,8 @@ notmuch_database_open (const char *path)
 
     xapian_path = g_strdup_printf ("%s/%s", notmuch_path, "xapian");
 
 
     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,
 
     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;
 {
     delete notmuch->query_parser;
     delete notmuch->xapian_db;
-    free (notmuch->path);
-    free (notmuch);
+    talloc_free (notmuch);
 }
 
 const char *
 }
 
 const char *