Unverified Commit 1b9801a0 authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto Committed by GitHub

Merge pull request #4641 from shuujii/rename-mrb_shared_string-len-to-mrb_shared_string-capa

Rename `mrb_shared_string::len` to `mrb_shared_string::capa`
parents feecb332 d2d201cc
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
typedef struct mrb_shared_string { typedef struct mrb_shared_string {
int refcnt; int refcnt;
mrb_int len; mrb_int capa;
char *ptr; char *ptr;
} mrb_shared_string; } mrb_shared_string;
...@@ -79,7 +79,7 @@ str_init_shared(mrb_state *mrb, const struct RString *orig, struct RString *s, m ...@@ -79,7 +79,7 @@ str_init_shared(mrb_state *mrb, const struct RString *orig, struct RString *s, m
shared = (mrb_shared_string *)mrb_malloc(mrb, sizeof(mrb_shared_string)); shared = (mrb_shared_string *)mrb_malloc(mrb, sizeof(mrb_shared_string));
shared->refcnt = 1; shared->refcnt = 1;
shared->ptr = orig->as.heap.ptr; shared->ptr = orig->as.heap.ptr;
shared->len = orig->as.heap.len; shared->capa = orig->as.heap.aux.capa;
} }
s->as.heap.ptr = orig->as.heap.ptr; s->as.heap.ptr = orig->as.heap.ptr;
s->as.heap.len = orig->as.heap.len; s->as.heap.len = orig->as.heap.len;
...@@ -534,6 +534,7 @@ str_make_shared(mrb_state *mrb, struct RString *orig, struct RString *s) ...@@ -534,6 +534,7 @@ str_make_shared(mrb_state *mrb, struct RString *orig, struct RString *s)
else { else {
if (orig->as.heap.aux.capa > orig->as.heap.len) { if (orig->as.heap.aux.capa > orig->as.heap.len) {
orig->as.heap.ptr = (char *)mrb_realloc(mrb, orig->as.heap.ptr, len+1); orig->as.heap.ptr = (char *)mrb_realloc(mrb, orig->as.heap.ptr, len+1);
orig->as.heap.aux.capa = len;
} }
str_init_shared(mrb, orig, s, NULL); str_init_shared(mrb, orig, s, NULL);
str_init_shared(mrb, orig, orig, s->as.heap.aux.shared); str_init_shared(mrb, orig, orig, s->as.heap.aux.shared);
...@@ -779,7 +780,7 @@ mrb_str_modify_keep_ascii(mrb_state *mrb, struct RString *s) ...@@ -779,7 +780,7 @@ mrb_str_modify_keep_ascii(mrb_state *mrb, struct RString *s)
mrb_shared_string *shared = s->as.heap.aux.shared; mrb_shared_string *shared = s->as.heap.aux.shared;
if (shared->refcnt == 1 && s->as.heap.ptr == shared->ptr) { if (shared->refcnt == 1 && s->as.heap.ptr == shared->ptr) {
s->as.heap.aux.capa = shared->len; s->as.heap.aux.capa = shared->capa;
s->as.heap.ptr[s->as.heap.len] = '\0'; s->as.heap.ptr[s->as.heap.len] = '\0';
mrb_free(mrb, shared); mrb_free(mrb, shared);
} }
......
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