summaryrefslogtreecommitdiff
path: root/jni/ruby/ext/-test-/bug_reporter/bug_reporter.c
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/ext/-test-/bug_reporter/bug_reporter.c')
-rw-r--r--jni/ruby/ext/-test-/bug_reporter/bug_reporter.c24
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);
+}