summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--re.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index bafa4fd62b..b6d390578f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu May 19 00:17:01 2016 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * re.c (reg_names_iter): specify capacify
+
Wed May 18 21:29:59 2016 NAKAMURA Usaku <usa@ruby-lang.org>
* thread.c (recursive_list_access): a object id may be a Bignum. so,
diff --git a/re.c b/re.c
index 7dfd978b66..36c12a6f6b 100644
--- a/re.c
+++ b/re.c
@@ -780,8 +780,9 @@ reg_names_iter(const OnigUChar *name, const OnigUChar *name_end,
static VALUE
rb_reg_names(VALUE re)
{
- VALUE ary = rb_ary_new();
+ VALUE ary;
rb_reg_check(re);
+ ary = rb_ary_new_capa(onig_number_of_names(RREGEXP_PTR(re)));
onig_foreach_name(RREGEXP_PTR(re), reg_names_iter, (void*)ary);
return ary;
}