Closed
Description
Description
The following code:
<?php
class ImmutableParser {
private $parser;
private $immutableData;
public function __construct() {
$this->parser = xml_parser_create();
xml_set_element_handler($this->parser, function ($parser, $name, $attrs) {
echo "open\n";
var_dump($name, $attrs);
$this->immutableData = array();
}, function ($parser, $name) {
echo "close\n";
var_dump($name);
});
}
public function parseXml($xml) {
$this->immutableData = array();
xml_parse_into_struct($this->parser, $xml, $this->immutableData, $this->immutableData);
return $this->immutableData;
}
}
$immutableParser = new ImmutableParser();
$xml = "<container><child/></container>";
$immutableData = $immutableParser->parseXml($xml);
?>
Resulted in this output:
/home/dan/php-src/Zend/zend_hash.c:807:3: runtime error: execution reached an unreachable program point
ZEND_ASSERT(idx < HT_IDX_TO_HASH(ht->nTableSize));
PHP Version
8.4.1
Operating System
Ubuntu 22.04