diff options
| author | ksss <[email protected]> | 2014-03-05 15:06:29 +0000 |
|---|---|---|
| committer | ksss <[email protected]> | 2014-03-06 13:47:51 +0000 |
| commit | 54132e436494b4797ca53cbd934963e7d752ac42 (patch) | |
| tree | c490aee6faa4fbcc8aac66b205b5087af4c208bc /src/class.c | |
| parent | 4070b5987a76a2d633a99e137035749559e2da59 (diff) | |
| download | mruby-54132e436494b4797ca53cbd934963e7d752ac42.tar.gz mruby-54132e436494b4797ca53cbd934963e7d752ac42.zip | |
make embed string when create literals
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 16 |
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* |
