ext/rmmseg/rmmseg.cpp in pluskid-rmmseg-cpp-0.2.1 vs ext/rmmseg/rmmseg.cpp in pluskid-rmmseg-cpp-0.2.2
- old
+ new
@@ -94,14 +94,14 @@
static VALUE cToken;
static VALUE tk_create(const char* base, const rmmseg::Token &t)
{
Token *tk = ALLOC(Token);
int start = t.text-base;
- tk->text = rb_str_new(t.text, t.length);
// This is necessary, see
// http://pluskid.lifegoo.com/?p=348
- rb_gc_mark(tk->text);
+ volatile VALUE text = rb_str_new(t.text, t.length);
+ tk->text = text;
tk->start = INT2FIX(start);
tk->end = INT2FIX(start + t.length);
return Data_Wrap_Struct(cToken,
(RUBY_DATA_FUNC)tk_mark,