History log of /PHP-8.3/ext/dom/parentnode.c (Results 1 – 25 of 48)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 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.

12