summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
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 /src/class.c
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 'src/class.c')
-rw-r--r--src/class.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/class.c b/src/class.c
index 8188db131..a1181d716 100644
--- a/src/class.c
+++ b/src/class.c
@@ -520,8 +520,8 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
if (i < argc) {
ss = to_str(mrb, *sp++);
s = mrb_str_ptr(ss);
- *ps = s->ptr;
- *pl = s->len;
+ *ps = s->as.heap.ptr;
+ *pl = s->as.heap.len;
i++;
}
}
@@ -537,14 +537,14 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
if (i < argc) {
ss = to_str(mrb, *sp++);
s = mrb_str_ptr(ss);
- len = (mrb_int)strlen(s->ptr);
- if (len < s->len) {
+ len = (mrb_int)strlen(s->as.heap.ptr);
+ if (len < s->as.heap.len) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
}
- else if (len > s->len) {
+ else if (len > s->as.heap.len) {
mrb_str_modify(mrb, s);
}
- *ps = s->ptr;
+ *ps = s->as.heap.ptr;
i++;
}
}
@@ -1298,7 +1298,7 @@ mrb_class_name(mrb_state *mrb, struct RClass* c)
mrb_str_concat(mrb, path, mrb_ptr_to_str(mrb, c));
mrb_str_cat_lit(mrb, path, ">");
}
- return mrb_str_ptr(path)->ptr;
+ return mrb_str_ptr(path)->as.heap.ptr;
}
const char*