summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authorksss <[email protected]>2014-03-02 11:04:04 +0000
committerksss <[email protected]>2014-03-06 13:12:08 +0000
commit4070b5987a76a2d633a99e137035749559e2da59 (patch)
tree0a753936d9fc52112b1e9c8f2e623a0542afc298 /mrbgems
parente40428af7b02870663a6c052496c176c22c5e875 (diff)
downloadmruby-4070b5987a76a2d633a99e137035749559e2da59.tar.gz
mruby-4070b5987a76a2d633a99e137035749559e2da59.zip
embed small string
use flags 4 for *this object is embed* use flags 8~64 for *embed string length*
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-print/src/print.c4
-rw-r--r--mrbgems/mruby-sprintf/src/sprintf.c2
-rw-r--r--mrbgems/mruby-string-ext/src/string.c4
3 files changed, 5 insertions, 5 deletions
diff --git a/mrbgems/mruby-print/src/print.c b/mrbgems/mruby-print/src/print.c
index 788b924f0..0cdbad6d4 100644
--- a/mrbgems/mruby-print/src/print.c
+++ b/mrbgems/mruby-print/src/print.c
@@ -11,8 +11,8 @@ printstr(mrb_state *mrb, mrb_value obj)
if (mrb_string_p(obj)) {
str = mrb_str_ptr(obj);
- s = str->ptr;
- len = str->len;
+ s = str->as.heap.ptr;
+ len = str->as.heap.len;
fwrite(s, len, 1, stdout);
}
}
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c
index ff9627437..785068999 100644
--- a/mrbgems/mruby-sprintf/src/sprintf.c
+++ b/mrbgems/mruby-sprintf/src/sprintf.c
@@ -712,7 +712,7 @@ retry:
if (*p == 'p') arg = mrb_inspect(mrb, arg);
str = mrb_obj_as_string(mrb, arg);
len = RSTRING_LEN(str);
- RSTRING_LEN(result) = blen;
+ RSTRING(result)->as.heap.len = blen;
if (flags&(FPREC|FWIDTH)) {
slen = RSTRING_LEN(str);
if (slen < 0) {
diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c
index f194bbc0e..274acf6f4 100644
--- a/mrbgems/mruby-string-ext/src/string.c
+++ b/mrbgems/mruby-string-ext/src/string.c
@@ -33,8 +33,8 @@ mrb_str_swapcase_bang(mrb_state *mrb, mrb_value str)
struct RString *s = mrb_str_ptr(str);
mrb_str_modify(mrb, s);
- p = s->ptr;
- pend = s->ptr + s->len;
+ p = s->as.heap.ptr;
+ pend = s->as.heap.ptr + s->as.heap.len;
while (p < pend) {
if (ISUPPER(*p)) {
*p = TOLOWER(*p);