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,