summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-04-14 12:20:18 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-04-14 12:20:18 +0900
commit636addd645a430c3b014ca99b11c1ee82b078a8b (patch)
treebaf6c159577f873107fe421b57dfa122ca2dfd76 /src
parent65678f11b427e11c33ffef5ba7adabd87bd4f530 (diff)
parent649081661a8f7a952b9386a63fe7271f3432f627 (diff)
downloadmruby-636addd645a430c3b014ca99b11c1ee82b078a8b.tar.gz
mruby-636addd645a430c3b014ca99b11c1ee82b078a8b.zip
Merge pull request #2059 from cremno/reduce-rstring_ptr-usage
reduce RSTRING_PTR usage
Diffstat (limited to 'src')
-rw-r--r--src/kernel.c6
-rw-r--r--src/symbol.c10
-rw-r--r--src/variable.c5
3 files changed, 13 insertions, 8 deletions
diff --git a/src/kernel.c b/src/kernel.c
index 15a80f7c4..3b1ad863f 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -573,8 +573,10 @@ get_valid_iv_sym(mrb_state *mrb, mrb_value iv_name)
mrb_assert(mrb_symbol_p(iv_name) || mrb_string_p(iv_name));
if (mrb_string_p(iv_name)) {
- iv_name_id = mrb_intern(mrb, RSTRING_PTR(iv_name), RSTRING_LEN(iv_name));
- valid_iv_name(mrb, iv_name_id, RSTRING_PTR(iv_name), RSTRING_LEN(iv_name));
+ char *p = RSTRING_PTR(iv_name);
+ mrb_int l = RSTRING_LEN(iv_name);
+ iv_name_id = mrb_intern(mrb, p, l);
+ valid_iv_name(mrb, iv_name_id, p, l);
}
else {
iv_name_id = mrb_symbol(iv_name);
diff --git a/src/symbol.c b/src/symbol.c
index 7206778d6..1b106ad98 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -394,15 +394,17 @@ sym_inspect(mrb_state *mrb, mrb_value sym)
const char *name;
mrb_int len;
mrb_sym id = mrb_symbol(sym);
+ char *sp;
name = mrb_sym2name_len(mrb, id, &len);
str = mrb_str_new(mrb, 0, len+1);
- RSTRING_PTR(str)[0] = ':';
- memcpy(RSTRING_PTR(str)+1, name, len);
+ sp = RSTRING_PTR(str);
+ sp[0] = ':';
+ memcpy(sp+1, name, len);
if (!symname_p(name) || strlen(name) != len) {
str = mrb_str_dump(mrb, str);
- RSTRING_PTR(str)[0] = ':';
- RSTRING_PTR(str)[1] = '"';
+ sp[0] = ':';
+ sp[1] = '"';
}
return str;
}
diff --git a/src/variable.c b/src/variable.c
index 3dcdbf775..90f0831da 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -563,10 +563,11 @@ inspect_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
const char *s;
mrb_int len;
mrb_value ins;
+ char *sp = RSTRING_PTR(str);
/* need not to show internal data */
- if (RSTRING_PTR(str)[0] == '-') { /* first element */
- RSTRING_PTR(str)[0] = '#';
+ if (sp[0] == '-') { /* first element */
+ sp[0] = '#';
mrb_str_cat_lit(mrb, str, " ");
}
else {