[PATCH 6/7] ruby: Use notmuch_database_destroy instead of notmuch_database_close
Felipe Contreras
felipe.contreras at gmail.com
Mon Apr 23 05:36:33 PDT 2012
Hi,
On Sun, Apr 22, 2012 at 3:07 PM, Justus Winter
<4winter at informatik.uni-hamburg.de> wrote:
> Adapt the ruby bindings to the notmuch_database_close split.
>
> Signed-off-by: Justus Winter <4winter at informatik.uni-hamburg.de>
> ---
> bindings/ruby/database.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/bindings/ruby/database.c b/bindings/ruby/database.c
> index 982fd59..ba9a139 100644
> --- a/bindings/ruby/database.c
> +++ b/bindings/ruby/database.c
> @@ -110,7 +110,7 @@ notmuch_rb_database_close (VALUE self)
> notmuch_database_t *db;
>
> Data_Get_Notmuch_Database (self, db);
> - notmuch_database_close (db);
> + notmuch_database_destroy (db);
> DATA_PTR (self) = NULL;
>
> return Qnil;
> --
I don't think this is the right approach. If database_destroy truly
destroys the object, then we would want to do it only at garbage
collection, when it's not accessible any more. What if I want to
re-use the database from the Ruby code?
This would probably be better:
-- a/bindings/ruby/database.c
+++ b/bindings/ruby/database.c
@@ -20,10 +20,16 @@
#include "defs.h"
+static void
+database_free (void *p)
+{
+ notmuch_database_destroy (p);
+}
+
VALUE
notmuch_rb_database_alloc (VALUE klass)
{
- return Data_Wrap_Struct (klass, NULL, NULL, NULL);
+ return Data_Wrap_Struct (klass, NULL, database_free, NULL);
}
/*
--
Felipe Contreras
More information about the notmuch
mailing list