Commit 79ba1ed1 authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge branch 'master' of github.com:mruby/mruby

parents bfd2a539 2220fb2a
...@@ -6,7 +6,7 @@ static void ...@@ -6,7 +6,7 @@ static void
printstr(mrb_state *mrb, mrb_value obj) printstr(mrb_state *mrb, mrb_value obj)
{ {
char *s; char *s;
int len; mrb_int len;
if (mrb_string_p(obj)) { if (mrb_string_p(obj)) {
s = RSTRING_PTR(obj); s = RSTRING_PTR(obj);
......
...@@ -713,7 +713,7 @@ retry: ...@@ -713,7 +713,7 @@ retry:
str = mrb_obj_as_string(mrb, arg); str = mrb_obj_as_string(mrb, arg);
len = RSTRING_LEN(str); len = RSTRING_LEN(str);
if (RSTRING(result)->flags & MRB_STR_EMBED) { if (RSTRING(result)->flags & MRB_STR_EMBED) {
int tmp_n = len; mrb_int tmp_n = len;
RSTRING(result)->flags &= ~MRB_STR_EMBED_LEN_MASK; RSTRING(result)->flags &= ~MRB_STR_EMBED_LEN_MASK;
RSTRING(result)->flags |= tmp_n << MRB_STR_EMBED_LEN_SHIFT; RSTRING(result)->flags |= tmp_n << MRB_STR_EMBED_LEN_SHIFT;
} else { } else {
......
...@@ -506,7 +506,7 @@ mrb_value ...@@ -506,7 +506,7 @@ mrb_value
mrb_struct_init_copy(mrb_state *mrb, mrb_value copy) mrb_struct_init_copy(mrb_state *mrb, mrb_value copy)
{ {
mrb_value s; mrb_value s;
int i, len; mrb_int i, len;
mrb_get_args(mrb, "o", &s); mrb_get_args(mrb, "o", &s);
......
...@@ -129,7 +129,7 @@ mrb_str_modify(mrb_state *mrb, struct RString *s) ...@@ -129,7 +129,7 @@ mrb_str_modify(mrb_state *mrb, struct RString *s)
return; return;
} }
if (s->flags & MRB_STR_NOFREE) { if (s->flags & MRB_STR_NOFREE) {
char *p = STR_PTR(s); char *p = s->as.heap.ptr;
s->as.heap.ptr = (char *)mrb_malloc(mrb, (size_t)s->as.heap.len+1); s->as.heap.ptr = (char *)mrb_malloc(mrb, (size_t)s->as.heap.len+1);
if (p) { if (p) {
...@@ -382,16 +382,16 @@ str_make_shared(mrb_state *mrb, struct RString *s) ...@@ -382,16 +382,16 @@ str_make_shared(mrb_state *mrb, struct RString *s)
} }
else if (s->flags & MRB_STR_NOFREE) { else if (s->flags & MRB_STR_NOFREE) {
shared->nofree = TRUE; shared->nofree = TRUE;
shared->ptr = STR_PTR(s); shared->ptr = s->as.heap.ptr;
s->flags &= ~MRB_STR_NOFREE; s->flags &= ~MRB_STR_NOFREE;
} }
else { else {
shared->nofree = FALSE; shared->nofree = FALSE;
if (s->as.heap.aux.capa > s->as.heap.len) { if (s->as.heap.aux.capa > s->as.heap.len) {
s->as.heap.ptr = shared->ptr = (char *)mrb_realloc(mrb, STR_PTR(s), s->as.heap.len+1); s->as.heap.ptr = shared->ptr = (char *)mrb_realloc(mrb, s->as.heap.ptr, s->as.heap.len+1);
} }
else { else {
shared->ptr = STR_PTR(s); shared->ptr = s->as.heap.ptr;
} }
} }
shared->len = s->as.heap.len; shared->len = s->as.heap.len;
...@@ -1441,7 +1441,7 @@ str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2) ...@@ -1441,7 +1441,7 @@ str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2)
else { else {
if (len <= RSTRING_EMBED_LEN_MAX) { if (len <= RSTRING_EMBED_LEN_MAX) {
STR_SET_EMBED_FLAG(s1); STR_SET_EMBED_FLAG(s1);
memcpy(STR_PTR(s1), STR_PTR(s2), len); memcpy(s1->as.ary, STR_PTR(s2), len);
STR_SET_EMBED_LEN(s1, len); STR_SET_EMBED_LEN(s1, len);
} }
else { else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment