summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/ext/finalizer_spec.c
blob: 83347da9124930e3eb36489436d4dcbd4f3bb108 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "ruby.h"
#include "rubyspec.h"

#ifdef __cplusplus
extern "C" {
#endif

static VALUE define_finalizer(VALUE self, VALUE obj, VALUE finalizer) {
  return rb_define_finalizer(obj, finalizer);
}

static VALUE undefine_finalizer(VALUE self, VALUE obj) {
  return rb_undefine_finalizer(obj);
}

void Init_finalizer_spec(void) {
  VALUE cls = rb_define_class("CApiFinalizerSpecs", rb_cObject);

  rb_define_method(cls, "rb_define_finalizer", define_finalizer, 2);
  rb_define_method(cls, "rb_undefine_finalizer", undefine_finalizer, 1);
}

#ifdef __cplusplus
}
#endif