]> git.cworth.org Git - notmuch/blobdiff - bindings/ruby/defs.h
ruby: create Data_Wrap_Notmuch_Object helper
[notmuch] / bindings / ruby / defs.h
index ae3ea10131af4de893377334fffcda304bab33f3..fcf1ea3900ca97cf5ae9c872b6bd86b04f331a0d 100644 (file)
@@ -58,12 +58,15 @@ extern ID ID_db_mode;
 #define Data_Get_Notmuch_Object(obj, ptr)                                          \
     do {                                                                           \
        (ptr) = rb_data_object_get ((obj));                                         \
-       if (!(ptr)) {                                                               \
+       if (RB_UNLIKELY (!(ptr))) {                                                 \
            VALUE cname = rb_class_name (CLASS_OF ((obj)));                         \
            rb_raise (rb_eRuntimeError, "%"PRIsVALUE" object destroyed", cname);    \
        }                                                                           \
     } while (0)
 
+#define Data_Wrap_Notmuch_Object(klass, ptr)   \
+    Data_Wrap_Struct ((klass), NULL, NULL, (ptr))
+
 #define Data_Get_Notmuch_Database(obj, ptr) \
     Data_Get_Notmuch_Object ((obj), (ptr))