]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/ruby/tags.c
ruby: Kill garbage collection related cruft.
[notmuch] / bindings / ruby / tags.c
index d0a5054ad002940a86263332f33f68bd14f8117c..7ca03b6f91135aa896e2c22994ebef2b653253d2 100644 (file)
 
 #include "defs.h"
 
+/*
+ * call-seq: tags.destroy => nil
+ *
+ * Destroys the tags, freeing all resources allocated for it.
+ */
+VALUE
+notmuch_rb_tags_destroy(VALUE self)
+{
+    notmuch_tags_t *tags;
+
+    Data_Get_Struct(self, notmuch_tags_t, tags);
+
+    notmuch_tags_destroy(tags);
+
+    return Qnil;
+}
+
 /*
  * call-seq: TAGS.each {|item| block } => TAGS
  *
@@ -30,16 +47,15 @@ VALUE
 notmuch_rb_tags_each(VALUE self)
 {
     const char *tag;
-    notmuch_rb_tags_t *tags;
+    notmuch_tags_t *tags;
 
-    Data_Get_Struct(self, notmuch_rb_tags_t, tags);
-    if (!tags->nm_tags)
+    Data_Get_Struct(self, notmuch_tags_t, tags);
+    if (!tags)
         return self;
 
-    for (; notmuch_tags_valid(tags->nm_tags);
-            notmuch_tags_move_to_next(tags->nm_tags)) {
-        tag = notmuch_tags_get(tags->nm_tags);
-        rb_yield(tag ? rb_str_new2(tag) : Qnil);
+    for (; notmuch_tags_valid(tags); notmuch_tags_move_to_next(tags)) {
+        tag = notmuch_tags_get(tags);
+        rb_yield(rb_str_new2(tag));
     }
 
     return self;