summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-26 19:01:49 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-26 19:01:49 +0000
commit2d17694de73433900c92e8c9bec854c9e52b5ac3 (patch)
tree0cb49e508aaca5626babb87af4b9d7020d8b097e
parentea5e22d102a357114846874c2ff641f4a18dbdf1 (diff)
merge revision(s) 55896: [Backport #12614]
* id_table.c (hash_table_extend): should not shrink the table than the previous capacity. [ruby-core:76534] [Bug #12614] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@56019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--id_table.c3
-rw-r--r--version.h2
3 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d5ac932c2e..6c4e5ac6dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Aug 27 03:51:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * id_table.c (hash_table_extend): should not shrink the table than
+ the previous capacity. [ruby-core:76534] [Bug #12614]
+
Sat Aug 27 03:37:49 2016 Kazuki Yamaguchi <k@rhe.jp>
* ext/openssl/ossl_config.c: fix memory leak.
diff --git a/id_table.c b/id_table.c
index 13adf6babb..423b00669b 100644
--- a/id_table.c
+++ b/id_table.c
@@ -1302,6 +1302,9 @@ hash_table_extend(struct hash_id_table* tbl)
int i;
item_t* old;
struct hash_id_table tmp_tbl = {0, 0, 0};
+ if (new_cap < tbl->capa) {
+ new_cap = round_capa(tbl->used + (tbl->used >> 1));
+ }
tmp_tbl.capa = new_cap;
tmp_tbl.items = ZALLOC_N(item_t, new_cap);
for (i = 0; i < tbl->capa; i++) {
diff --git a/version.h b/version.h
index 6d0c8e6025..f67f074fee 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.3.2"
#define RUBY_RELEASE_DATE "2016-08-27"
-#define RUBY_PATCHLEVEL 179
+#define RUBY_PATCHLEVEL 180
#define RUBY_RELEASE_YEAR 2016
#define RUBY_RELEASE_MONTH 8