diff options
Diffstat (limited to 'jni/ruby/ext/-test-/bug_reporter/bug_reporter.c')
-rw-r--r-- | jni/ruby/ext/-test-/bug_reporter/bug_reporter.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/jni/ruby/ext/-test-/bug_reporter/bug_reporter.c b/jni/ruby/ext/-test-/bug_reporter/bug_reporter.c new file mode 100644 index 0000000..e9ea9e3 --- /dev/null +++ b/jni/ruby/ext/-test-/bug_reporter/bug_reporter.c @@ -0,0 +1,24 @@ +#include <ruby.h> +#include <stdio.h> + +int rb_bug_reporter_add(void (*func)(FILE *, void *), void *data); + +static void +sample_bug_reporter(FILE *out, void *ptr) +{ + int n = (int)(uintptr_t)ptr; + fprintf(out, "Sample bug reporter: %d\n", n); +} + +static VALUE +register_sample_bug_reporter(VALUE self, VALUE obj) +{ + rb_bug_reporter_add(sample_bug_reporter, (void *)(uintptr_t)NUM2INT(obj)); + return Qnil; +} + +void +Init_bug_reporter(void) +{ + rb_define_global_function("register_sample_bug_reporter", register_sample_bug_reporter, 1); +} |