summaryrefslogtreecommitdiffhomepage
path: root/src/re.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-23 13:51:50 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-23 13:51:50 +0900
commitf045e646751bfe0f399aae59746befa6384b96aa (patch)
treef14b8e5b4525fbba488a7e1120a61d48b155da2d /src/re.c
parent1fa63930fd072847d24ffe9c20a57109c41387ec (diff)
downloadmruby-f045e646751bfe0f399aae59746befa6384b96aa.tar.gz
mruby-f045e646751bfe0f399aae59746befa6384b96aa.zip
reduce calling mrb_str_new_cstr() to avoid strlen(); #301
Diffstat (limited to 'src/re.c')
-rw-r--r--src/re.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/re.c b/src/re.c
index 12061eacf..a7552de11 100644
--- a/src/re.c
+++ b/src/re.c
@@ -354,10 +354,10 @@ mrb_reg_options(mrb_state *mrb, mrb_value re)
static mrb_value
mrb_reg_desc(mrb_state *mrb, const char *s, long len, mrb_value re)
{
- mrb_value str = mrb_str_new_cstr(mrb, "/");//mrb_str_buf_new2("/");
+ mrb_value str = mrb_str_new(mrb, "/", 1);
mrb_reg_expr_str(mrb, str, s, len);
- mrb_str_buf_cat(mrb, str, "/", sizeof("/"));
+ mrb_str_buf_cat(mrb, str, "/", 1);
if (re.tt) {
char opts[4];
mrb_reg_check(mrb, re);
@@ -1688,9 +1688,10 @@ mrb_reg_expr_str(mrb_state *mrb, mrb_value str, const char *s, long len)
}
else if (!ISSPACE(c)) {
char b[8];
+ int n;
- snprintf(b, sizeof(b), "\\x%02X", c);
- mrb_str_buf_cat(mrb, str, b, 4);
+ n = snprintf(b, sizeof(b), "\\x%02X", c);
+ mrb_str_buf_cat(mrb, str, b, n);
}
else {
mrb_str_buf_cat(mrb, str, p, 1);
@@ -1728,7 +1729,7 @@ mrb_reg_to_s(mrb_state *mrb, mrb_value re)
const int embeddable = ONIG_OPTION_MULTILINE|ONIG_OPTION_IGNORECASE|ONIG_OPTION_EXTEND;
long len;
const UChar* ptr;
- mrb_value str = mrb_str_new_cstr(mrb, "(?");
+ mrb_value str = mrb_str_new(mrb, "(?", 2);
char optbuf[5];
mrb_encoding *enc = mrb_enc_get(mrb, re);
@@ -1918,7 +1919,7 @@ mrb_match_inspect(mrb_state *mrb, mrb_value match)
onig_foreach_name(regexp->ptr,
match_inspect_name_iter, names);
- str = mrb_str_new_cstr(mrb, "#<");//mrb_str_buf_new2("#<");
+ str = mrb_str_new(mrb, "#<", 2);
mrb_str_buf_cat(mrb, str, cname, strlen(cname));
for (i = 0; i < num_regs; i++) {