aboutsummaryrefslogtreecommitdiffhomepage
path: root/bindings/ruby/tags.c
diff options
context:
space:
mode:
authorGravatar Ali Polatel <alip@exherbo.org>2010-05-26 20:56:07 +0300
committerGravatar Ali Polatel <alip@exherbo.org>2010-06-06 09:18:00 +0300
commit5c9e385591b66fa20cbb186393c48c52831a23b7 (patch)
tree2c87c8356373a958623e65ef311054799f09e5ea /bindings/ruby/tags.c
parentd2a457a5d8238c54445a8a6066f79c112ebd3a04 (diff)
ruby: Don't barf if an object is destroyed more than once
Raise RuntimeError instead. Also revise Notmuch::Database a bit. Add Notmuch::Database.open singleton method.
Diffstat (limited to 'bindings/ruby/tags.c')
-rw-r--r--bindings/ruby/tags.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/bindings/ruby/tags.c b/bindings/ruby/tags.c
index 7ca03b6f..d7cd941d 100644
--- a/bindings/ruby/tags.c
+++ b/bindings/ruby/tags.c
@@ -21,7 +21,7 @@
#include "defs.h"
/*
- * call-seq: tags.destroy => nil
+ * call-seq: TAGS.destroy => nil
*
* Destroys the tags, freeing all resources allocated for it.
*/
@@ -30,9 +30,10 @@ notmuch_rb_tags_destroy(VALUE self)
{
notmuch_tags_t *tags;
- Data_Get_Struct(self, notmuch_tags_t, tags);
+ Data_Get_Notmuch_Tags(self, tags);
notmuch_tags_destroy(tags);
+ DATA_PTR(self) = NULL;
return Qnil;
}
@@ -49,9 +50,7 @@ notmuch_rb_tags_each(VALUE self)
const char *tag;
notmuch_tags_t *tags;
- Data_Get_Struct(self, notmuch_tags_t, tags);
- if (!tags)
- return self;
+ Data_Get_Notmuch_Tags(self, tags);
for (; notmuch_tags_valid(tags); notmuch_tags_move_to_next(tags)) {
tag = notmuch_tags_get(tags);