]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/ruby/init.c
ruby: create an actual wrapper struct
[notmuch] / bindings / ruby / init.c
index bedfbf60646cf4d2d4c4ebc209ea0e2c145faece..55c5366e3fc0af8556906ef97b8c1bcd30070ac8 100644 (file)
@@ -48,6 +48,9 @@ ID ID_db_mode;
 
 const rb_data_type_t notmuch_rb_object_type = {
     .wrap_struct_name = "notmuch_object",
+    .function = {
+       .dfree = notmuch_rb_object_free,
+    },
 };
 
 #define define_type(id) \
@@ -55,6 +58,9 @@ const rb_data_type_t notmuch_rb_object_type = {
        .wrap_struct_name = "notmuch_" #id, \
        .parent = &notmuch_rb_object_type, \
        .data = &notmuch_ ## id ## _destroy, \
+       .function = { \
+           .dfree = notmuch_rb_object_free, \
+       }, \
     }
 
 define_type (database);
@@ -275,7 +281,7 @@ Init_notmuch (void)
     rb_define_method (notmuch_rb_cDatabase, "find_message_by_filename",
                      notmuch_rb_database_find_message_by_filename, 1); /* in database.c */
     rb_define_method (notmuch_rb_cDatabase, "all_tags", notmuch_rb_database_get_all_tags, 0); /* in database.c */
-    rb_define_method (notmuch_rb_cDatabase, "query", notmuch_rb_database_query_create, 1); /* in database.c */
+    rb_define_method (notmuch_rb_cDatabase, "query", notmuch_rb_database_query_create, -1); /* in database.c */
 
     /*
      * Document-class: Notmuch::Directory