summaryrefslogtreecommitdiff
path: root/enumerator.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2024-04-16 16:13:19 +0900
committerNobuyoshi Nakada <[email protected]>2024-04-16 16:13:19 +0900
commit29110fe18d8f10f649cbcd43a9726069bfff1c54 ()
tree4a135d8a0d6e8cf20fe61555500f13c9f0a2db0e /enumerator.c
parent53a8ad151bf2a5a986f294027178659aad1a5bd5 (diff)
[Bug #20325] `Enumerator.product.size` is 0 if any size is 0
-rw-r--r--enumerator.c9
1 files changed, 9 insertions, 0 deletions
@@ -3536,10 +3536,19 @@ static VALUE
enum_product_total_size(VALUE enums)
{
VALUE total = INT2FIX(1);
long i;
for (i = 0; i < RARRAY_LEN(enums); i++) {
VALUE size = enum_size(RARRAY_AREF(enums, i));
if (NIL_P(size) || (RB_TYPE_P(size, T_FLOAT) && isinf(NUM2DBL(size)))) {
return size;