Skip to content

Commit 59df418

Browse files
committed
Fix refcount mistake in \Io\Poll\Backend::getAvailableBackends()
1 parent 6c6fb56 commit 59df418

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

ext/standard/io_poll.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ PHP_METHOD(Io_Poll_Backend, getAvailableBackends)
414414
if (php_poll_is_backend_available(backends[i])) {
415415
const char *name = php_io_poll_backend_type_to_name(backends[i]);
416416
zval enum_case;
417-
ZVAL_OBJ(&enum_case, zend_enum_get_case_cstr(php_io_poll_backend_class_entry, name));
417+
ZVAL_OBJ_COPY(&enum_case, zend_enum_get_case_cstr(php_io_poll_backend_class_entry, name));
418418
add_next_index_zval(return_value, &enum_case);
419419
}
420420
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
--TEST--
2+
\Io\Poll\Backend::getAvailableBackends() - loop
3+
--FILE--
4+
<?php
5+
$objs = [];
6+
foreach (($expr1 = \Io\Poll\Backend::getAvailableBackends()) as $expr2) {
7+
$objs[] = $expr2;
8+
}
9+
echo "Okay\n";
10+
?>
11+
--EXPECT--
12+
Okay

0 commit comments

Comments
 (0)