#
68d494d6 |
| 25-Sep-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix GH-16039: Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c
|
#
043b9e1f |
| 25-Sep-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16039: Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c dom_object_get_node() can fail if we don't have a user object associated. Closes GH-16056. |
#
12ef6cc5 |
| 12-May-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' into PHP-8.3 * PHP-8.2: Fix crash in ParentNode::append() when dealing with a fragment containing text nodes
|
#
1e2a2d7d |
| 11-May-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix crash in ParentNode::append() when dealing with a fragment containing text nodes Credits for test: https://github.com/PhpGt/Dom/pull/454. Closes GH-14206. |
#
eebc528c |
| 01-Oct-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix broken cache invalidation with deallocated and reallocated document node The original caching implementation had an oversight in combination with the new lifetime management in DOM f
Fix broken cache invalidation with deallocated and reallocated document node The original caching implementation had an oversight in combination with the new lifetime management in DOM for 8.3. The modification counter is stored on the document object itself, but as that can get deallocated when all references disappear, stale cache data can be used. Normally this isn't a problem, unless getElementsByTagName is called not on the document but on a child node. Fix it by moving caching data into the ref object, which will outlive all nodes from a document even if the document object disappears. Closes GH-12338.
show more ...
|
#
620b6220 |
| 08-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Optimize checks for DOMParentNode and DOMChildNode Because we check the list with dom_sanity_check_node_list_for_insertion() before dom_is_node_in_list(), then we don't have to check the
Optimize checks for DOMParentNode and DOMChildNode Because we check the list with dom_sanity_check_node_list_for_insertion() before dom_is_node_in_list(), then we don't have to check the object type anymore in dom_is_node_in_list(), because dom_sanity_check_node_list_for_insertion() will have already done that. Closes GH-11914.
show more ...
|
#
23ba4cde |
| 07-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Align DOMChildNode parent checks with spec Closes GH-11905. |
#
cb927e0f |
| 08-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' * PHP-8.2: Fix segfault when DOMParentNode::prepend() is called when the child disappears
|
#
d19e4da1 |
| 07-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix segfault when DOMParentNode::prepend() is called when the child disappears Closes GH-11906. |
#
df6e8bd4 |
| 05-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix viable next sibling search for replaceWith Closes GH-11888. |
#
5d5e6b06 |
| 07-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' * PHP-8.2: Fix viable next sibling search for replaceWith
|
#
815b5ad5 |
| 05-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix viable next sibling search for replaceWith Closes GH-11888. |
#
3ad50294 |
| 07-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' * PHP-8.2: Fix GH-11830: ParentNode methods should perform their checks upfront Fix manually calling __construct() on DOM classes
|
#
dddd309d |
| 05-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-11830: ParentNode methods should perform their checks upfront Closes GH-11887. |
#
e701b2fe |
| 05-Aug-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Make DOMChildNode::remove() run in O(1) performance This method had some useless logic in it. It checked whether the child node is a child of its parent, which is always true of course.
Make DOMChildNode::remove() run in O(1) performance This method had some useless logic in it. It checked whether the child node is a child of its parent, which is always true of course. But I know where this check comes from, if you follow the spec closely you'll find that the spec used to have explicit child and parent arguments for the removal algorithm [1]. That's because that algorithm is written in a generic way, where the parent and child arguments might not come from the same subtree. However, in this particular case it *is* always the case that the child is a child of its parent. The checks weren't needed back then for DOMChildNode::remove(), and are still not needed today. [1] e.g. https://web.archive.org/web/20180601092634/https://dom.spec.whatwg.org/#concept-node-remove
show more ...
|
#
6560c9bf |
| 13-Jul-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Implement DOMParentNode::replaceChildren() ref: https://dom.spec.whatwg.org/#dom-parentnode-replacechildren |
#
62ef7bb2 |
| 13-Jul-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' * PHP-8.2: Handle fragments consisting out of multiple children without a single root correctly
|
#
5c26258e |
| 13-Jul-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Handle fragments consisting out of multiple children without a single root correctly Closes GH-11698. |
#
4863d93c |
| 10-Jul-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' * PHP-8.2: Fix GH-11630: proc_nice_basic.phpt only works at certain nice levels Fix GH-11629: bug77020.phpt tries to send mail Fix GH-11625: DOMEleme
Merge branch 'PHP-8.2' * PHP-8.2: Fix GH-11630: proc_nice_basic.phpt only works at certain nice levels Fix GH-11629: bug77020.phpt tries to send mail Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version
show more ...
|
#
15ff8303 |
| 07-Jul-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version Depending on the libxml2 ver
Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version Depending on the libxml2 version, the behaviour is either to not render the fragment correctly, or to wrap it inside <></>. Fix it by unpacking fragments manually. This has the side effect that we need to move the unlinking check in the replacement function to earlier because the empty child list is now possible in non-error cases. Also fixes a mistake in the linked list management. Closes GH-11627.
show more ...
|
#
8904ac7f |
| 18-Jun-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Add missing cache invalidation in dom_child_replace_with() This was forgotten during an earlier merge. |
#
8e015170 |
| 07-Jun-2023 |
nielsdos <7771979+nielsdos@users.noreply.github.com> |
[ci skip] Fix inaccurate comment |
#
a7202682 |
| 05-Jun-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Use uint32_t for the number of nodes (#11371) |
#
e8fb0edc |
| 04-Jun-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Merge branch 'PHP-8.2' * PHP-8.2: Fix bug #77686: Removed elements are still returned by getElementById Fix bug #81642: DOMChildNode::replaceWith() bug when replacing a node with
Merge branch 'PHP-8.2' * PHP-8.2: Fix bug #77686: Removed elements are still returned by getElementById Fix bug #81642: DOMChildNode::replaceWith() bug when replacing a node with itself Fix bug #67440: append_node of a DOMDocumentFragment does not reconcile namespaces
show more ...
|
#
23f70025 |
| 03-Jun-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix bug #81642: DOMChildNode::replaceWith() bug when replacing a node with itself Closes GH-11363. |