]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/ruby/query.c
ruby: Don't barf if an object is destroyed more than once
[notmuch] / bindings / ruby / query.c
index 5140c0083b25c0becbc85223ef568117fc5e5fdc..c5b8a4cc324f278ed6ff0ec17007c8eb90c01538 100644 (file)
@@ -30,9 +30,10 @@ notmuch_rb_query_destroy(VALUE self)
 {
     notmuch_query_t *query;
 
-    Data_Get_Struct(self, notmuch_query_t, query);
+    Data_Get_Notmuch_Query(self, query);
 
     notmuch_query_destroy(query);
+    DATA_PTR(self) = NULL;
 
     return Qnil;
 }
@@ -47,10 +48,10 @@ notmuch_rb_query_set_sort(VALUE self, VALUE sortv)
 {
     notmuch_query_t *query;
 
-    Data_Get_Struct(self, notmuch_query_t, query);
+    Data_Get_Notmuch_Query(self, query);
 
     if (!FIXNUM_P(sortv))
-        rb_raise(rb_eTypeError, "Not a fixnum");
+        rb_raise(rb_eTypeError, "Not a Fixnum");
 
     notmuch_query_set_sort(query, FIX2UINT(sortv));
 
@@ -68,7 +69,7 @@ notmuch_rb_query_search_threads(VALUE self)
     notmuch_query_t *query;
     notmuch_threads_t *threads;
 
-    Data_Get_Struct(self, notmuch_query_t, query);
+    Data_Get_Notmuch_Query(self, query);
 
     threads = notmuch_query_search_threads(query);
     if (!threads)
@@ -88,7 +89,7 @@ notmuch_rb_query_search_messages(VALUE self)
     notmuch_query_t *query;
     notmuch_messages_t *messages;
 
-    Data_Get_Struct(self, notmuch_query_t, query);
+    Data_Get_Notmuch_Query(self, query);
 
     messages = notmuch_query_search_messages(query);
     if (!messages)