aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-07 18:44:45 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-07 18:44:45 +0000
commit21366b17a5009d13b9f0ebf78e5a248494835847 (patch)
treeae303aba3a1fcf374b3e9829232f872332cccb2c
parent889f50227cd01425fd22692d552c5f9a3410373f (diff)
downloadruby-21366b17a5009d13b9f0ebf78e5a248494835847.tar.gz
* compile.c (rb_iseq_build_from_ary): do not allocate table
if table_size is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--compile.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b781975baa..0ede8ca47d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Dec 8 03:43:21 2015 Koichi Sasada <ko1@atdot.net>
+
+ * compile.c (rb_iseq_build_from_ary): do not allocate table
+ if table_size is 0.
+
Tue Dec 8 03:30:34 2015 Eric Wong <e@80x24.org>
* ext/socket/unixsocket.c (unix_send_io): document args
diff --git a/compile.c b/compile.c
index c9b44ec2e9..9be8fd57c8 100644
--- a/compile.c
+++ b/compile.c
@@ -6545,7 +6545,7 @@ rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,
len = RARRAY_LENINT(locals);
iseq->body->local_table_size = len;
- iseq->body->local_table = tbl = (ID *)ALLOC_N(ID, iseq->body->local_table_size);
+ iseq->body->local_table = tbl = len > 0 ? (ID *)ALLOC_N(ID, iseq->body->local_table_size) : NULL;
iseq->body->local_size = iseq->body->local_table_size + 1;
for (i = 0; i < len; i++) {