From 3bb09f99284d6da3ee5192fb4636ad73981ad1f1 Mon Sep 17 00:00:00 2001 From: Masamitsu MURASE Date: Mon, 11 Jun 2012 01:56:46 +0900 Subject: string.subseq should create new string based on 'ptr' not on 'aux.shared'. --- src/string.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/string.c') diff --git a/src/string.c b/src/string.c index e955b3f22..67cc32137 100644 --- a/src/string.c +++ b/src/string.c @@ -1199,14 +1199,14 @@ mrb_str_eql(mrb_state *mrb, mrb_value self) static mrb_value mrb_str_subseq(mrb_state *mrb, mrb_value str, int beg, int len) { - struct RString *s; + struct RString *orig, *s; struct mrb_shared_string *shared; - s = mrb_str_ptr(str); - str_make_shared(mrb, s); - shared = s->aux.shared; + orig = mrb_str_ptr(str); + str_make_shared(mrb, orig); + shared = orig->aux.shared; s = mrb_obj_alloc_string(mrb); - s->ptr = shared->ptr + beg; + s->ptr = orig->ptr + beg; s->len = len; s->aux.shared = shared; s->flags |= MRB_STR_SHARED; -- cgit v1.2.3