php-src/ext/dom
Dmitry Stogov 90b7bde615 Use more compact representation for packed arrays.
- for packed arrays we store just an array of zvals without keys.
- the elements of packed array are accessible throuf as ht->arPacked[i]
  instead of ht->arData[i]
- in addition to general ZEND_HASH_FOREACH_* macros, we introduced similar
  familied for packed (ZEND_HASH_PACKED_FORECH_*) and real hashes
  (ZEND_HASH_MAP_FOREACH_*)
- introduced an additional family of macros to access elements of array
  (packed or real hashes) ZEND_ARRAY_ELEMET_SIZE, ZEND_ARRAY_ELEMET_EX,
  ZEND_ARRAY_ELEMET, ZEND_ARRAY_NEXT_ELEMENT, ZEND_ARRAY_PREV_ELEMENT
- zend_hash_minmax() prototype was changed to compare only values

Because of smaller data set, this patch may show performance improvement
on some apps and benchmarks that use packed arrays. (~1% on PHP-Parser)

TODO:
    - sapi/phpdbg needs special support for packed arrays (WATCH_ON_BUCKET).
    - zend_hash_sort_ex() may require converting packed arrays to hash.
2021-11-03 15:18:26 +03:00
..
tests Merge branch 'PHP-8.0' into PHP-8.1 2021-10-21 10:44:42 +02:00
attr.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
cdatasection.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
characterdata.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
comment.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
config.m4 [RFC] Implement new DOM Living Standard APIs in ext/dom 2020-02-28 16:13:39 +01:00
config.w32 [RFC] Implement new DOM Living Standard APIs in ext/dom 2020-02-28 16:13:39 +01:00
CREDITS
document.c Throw DomException for DOM out-of-memory error conditions 2021-07-19 14:43:31 +02:00
documentfragment.c Fixed some spaces used instead of tabs 2021-06-29 11:30:26 +02:00
documenttype.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
dom_ce.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
dom_iterators.c Fixed some spaces used instead of tabs 2021-06-29 11:30:26 +02:00
dom_properties.h Make a few unuseful DOMEntity properties readonly (#7406) 2021-08-26 10:37:45 +02:00
domexception.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
domexception.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
domimplementation.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
element.c Merge branch 'PHP-8.0' into PHP-8.1 2021-09-13 12:14:32 +02:00
entity.c Update property read handler comments for DOMEntity 2021-08-26 13:15:24 +02:00
entityreference.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
namednodemap.c DOMNamedNodeMap::count() cannot return false 2021-07-16 16:27:53 +02:00
node.c Use more compact representation for packed arrays. 2021-11-03 15:18:26 +03:00
nodelist.c DOMNodeList::count() cannot return false 2021-07-16 16:22:52 +02:00
notation.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
parentnode.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_dom_arginfo.h Fix a few more classsynopsis generation issues 2021-09-22 23:09:43 +02:00
php_dom.c Use more compact representation for packed arrays. 2021-11-03 15:18:26 +03:00
php_dom.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_dom.stub.php Fix a few more classsynopsis generation issues 2021-09-22 23:09:43 +02:00
processinginstruction.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
text.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
xml_common.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
xpath.c Fixed some spaces used instead of tabs 2021-06-29 11:30:26 +02:00