diff options
| author | ksss <[email protected]> | 2014-03-02 11:04:04 +0000 |
|---|---|---|
| committer | ksss <[email protected]> | 2014-03-06 13:12:08 +0000 |
| commit | 4070b5987a76a2d633a99e137035749559e2da59 (patch) | |
| tree | 0a753936d9fc52112b1e9c8f2e623a0542afc298 /src/class.c | |
| parent | e40428af7b02870663a6c052496c176c22c5e875 (diff) | |
| download | mruby-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.c | 14 |
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* |
