summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorksss <[email protected]>2014-03-05 15:06:29 +0000
committerksss <[email protected]>2014-03-06 13:47:51 +0000
commit54132e436494b4797ca53cbd934963e7d752ac42 (patch)
treec490aee6faa4fbcc8aac66b205b5087af4c208bc /src/class.c
parent4070b5987a76a2d633a99e137035749559e2da59 (diff)
downloadmruby-54132e436494b4797ca53cbd934963e7d752ac42.tar.gz
mruby-54132e436494b4797ca53cbd934963e7d752ac42.zip
make embed string when create literals
Diffstat (limited to 'src/class.c')
-rw-r--r--src/class.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/class.c b/src/class.c
index a1181d716..9880a82fa 100644
--- a/src/class.c
+++ b/src/class.c
@@ -511,7 +511,6 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
case 's':
{
mrb_value ss;
- struct RString *s;
char **ps = 0;
int *pl = 0;
@@ -519,9 +518,8 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
pl = va_arg(ap, int*);
if (i < argc) {
ss = to_str(mrb, *sp++);
- s = mrb_str_ptr(ss);
- *ps = s->as.heap.ptr;
- *pl = s->as.heap.len;
+ *ps = RSTRING_PTR(ss);
+ *pl = RSTRING_LEN(ss);
i++;
}
}
@@ -537,14 +535,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->as.heap.ptr);
- if (len < s->as.heap.len) {
+ len = (mrb_int)strlen(RSTRING_PTR(ss));
+ if (len < RSTRING_LEN(ss)) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
}
- else if (len > s->as.heap.len) {
+ else if (len > RSTRING_LEN(ss)) {
mrb_str_modify(mrb, s);
}
- *ps = s->as.heap.ptr;
+ *ps = RSTRING_PTR(ss);
i++;
}
}
@@ -1298,7 +1296,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)->as.heap.ptr;
+ return RSTRING_PTR(path);
}
const char*