diff options
Diffstat (limited to 'ext/-test-/string/cstr.c')
-rw-r--r-- | ext/-test-/string/cstr.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/ext/-test-/string/cstr.c b/ext/-test-/string/cstr.c new file mode 100644 index 0000000..d4ff360 --- /dev/null +++ b/ext/-test-/string/cstr.c @@ -0,0 +1,20 @@ +#include "ruby.h" + +static VALUE +bug_str_cstr_term(VALUE str) +{ + long len; + char *s; + rb_str_modify(str); + len = RSTRING_LEN(str); + RSTRING_PTR(str)[len] = 'x'; + s = StringValueCStr(str); + rb_gc(); + return INT2NUM(s[len]); +} + +void +Init_cstr(VALUE klass) +{ + rb_define_method(klass, "cstr_term", bug_str_cstr_term, 0); +} |