diff options
author | Ali Polatel <alip@exherbo.org> | 2010-05-26 20:56:07 +0300 |
---|---|---|
committer | Ali Polatel <alip@exherbo.org> | 2010-06-06 09:18:00 +0300 |
commit | 5c9e385591b66fa20cbb186393c48c52831a23b7 (patch) | |
tree | 2c87c8356373a958623e65ef311054799f09e5ea /bindings/ruby/tags.c | |
parent | d2a457a5d8238c54445a8a6066f79c112ebd3a04 (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.c | 9 |
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); |