History log of /php-src/ext/libxml/libxml.c (Results 1 – 25 of 265)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 30885f3b 31-Mar-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Implement request #71571: XSLT processor should provide option to change maxDepth (#13731)

There are two depth limiting parameters for XSLT templates.
1) maxTemplateDepth
This cor

Implement request #71571: XSLT processor should provide option to change maxDepth (#13731)

There are two depth limiting parameters for XSLT templates.
1) maxTemplateDepth
This corresponds to the recursion depth of a template. For very
complicated templates this can be hit.
2) maxTemplateVars
This is the total number of live variables. When using recursive
templates with lots of parameters you can hit this limit.

This patch introduces two new properties to XSLTProcessor that
corresponds to the above variables.

show more ...


# b9559738 13-Mar-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Only register error handling when observable

Closes GH-13702.


# 14b6c981 09-Mar-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

[RFC] Add a way to opt-in ext/dom spec compliance (#13031)

RFC: https://wiki.php.net/rfc/opt_in_dom_spec_compliance


# a74da53f 24-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Remove useless write to LIBXML(stream_context)

The value will always be overwritten.


# 120bd364 22-Dec-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix crashes with entity references and predefined entities

Closes GH-13004.


# 03547f68 03-Jan-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Remove properties field from php_libxml_node_object (#13062)

This shrinks the struct from 80 bytes to 72 bytes.
This was unused internally, I did not find users externally via GitHub

Remove properties field from php_libxml_node_object (#13062)

This shrinks the struct from 80 bytes to 72 bytes.
This was unused internally, I did not find users externally via GitHub
search.
The intention for this was that it could be used for attaching extra
data as a 3rd party to a node. However, there are better mechanisms for
that like using actual objects.

show more ...


# 5f69232b 23-Dec-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Revert "Fix crashes with entity references and predefined entities"

This reverts commit 3fa5af8496bdbc74e24828b790e4acfd6a26f0d4.


# bb007438 23-Dec-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix libxml2 build for 2.12.0-2.12.2


# 3fa5af84 22-Dec-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix crashes with entity references and predefined entities

There's two issues here:
- freeing of predefined entity declaration crashes (unique to 8.3 & master)
- using multiple entit

Fix crashes with entity references and predefined entities

There's two issues here:
- freeing of predefined entity declaration crashes (unique to 8.3 & master)
- using multiple entity references for a single entity declaration crashes
(since forever)

The fix for the last issue is fairly easy to do on 8.3, but may require a
slightly different approach on 8.2. Therefore, for now this is 8.3-only.

Closes GH-13004.

show more ...


# 90eb5679 08-Dec-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Cleanup libxml_get_external_entity_loader() (#12893)

We can directly put the value into return_value instead of copying
things around.


# 0a39890c 01-Dec-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix libxml2 2.12 build due to API breaks

See https://github.com/php/php-src/actions/runs/7062192818/job/19225478601


# ae83d6ab 29-Nov-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix issues related to libxml2 2.12.0 (#12802)

* Avoid passing NULL to xmlSwitchToEncoding

This otherwise switches to UTF-8 on libxml2 2.12.0

* Split tests for different err

Fix issues related to libxml2 2.12.0 (#12802)

* Avoid passing NULL to xmlSwitchToEncoding

This otherwise switches to UTF-8 on libxml2 2.12.0

* Split tests for different error reporting behaviour in libxml2 2.12.0

* Avoid deprecation warnings for libxml2 2.12.0

We can't fully get rid of the parser globals as there are still APIs
that implicitly use them.

* Temporarily disable part of test for libxml 2.12.0 regression

See https://gitlab.gnome.org/GNOME/libxml2/-/issues/634

* Review fixes

* [ci skip] Update test description

show more ...


# 1492be52 13-Nov-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

[RFC] DOM HTML5 parsing and serialization support (#12111)


# 52de0950 06-Oct-2023 George Peter Banyard

ext/libxml: Use new F ZPP modifier


# 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 ...


# df89409a 29-Sep-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2

libxml2 prior to 2.9.8 had a different signature for xmlHashScanner.
This signature changed in https://

Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2

libxml2 prior to 2.9.8 had a different signature for xmlHashScanner.
This signature changed in https://github.com/GNOME/libxml2/commit/e03f0a199a67017b2f8052354cf732b2b4cae787
Use an #if to work around the incompatible signature.

Closes GH-12326.

show more ...


# 6a2b8851 27-Sep-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Merge branch 'PHP-8.2' into PHP-8.3

* PHP-8.2:
Restore old namespace reconciliation behaviour


# e648d39e 26-Aug-2023 David CARLIER

libxml set error structure simplification proposal (#12054)

# e1cb7216 22-Aug-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Improve warning when returning null from the resolver set by libxml_set_external_entity_loader

Fixes GH-11952.
Closes GH-12022.

# bb092ab4 06-Aug-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix #80927: Removing documentElement after creating attribute node: possible use-after-free

Closes GH-11892.

# 5018dfec 06-Aug-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Remove useless hashmap check

php_libxml_unlink_entity is called from a hashmap iterator, so using
xmlHashLookup to check if it comes from that hashmap will always be
true.

# 75229cb1 10-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Cleanup php_libxml_node_decrement_resource()

obj_node is already checked, so checking it again in the second if is
not necessary.
Merge declarations and assignments while we're at it.

# 003ebdd0 02-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-9628: Implicitly removing nodes from \DOMDocument breaks existing references

Change the way lifetime works in ext/libxml and ext/dom

Previously, a node could be freed even wh

Fix GH-9628: Implicitly removing nodes from \DOMDocument breaks existing references

Change the way lifetime works in ext/libxml and ext/dom

Previously, a node could be freed even when holding a userland reference
to it. This resulted in exceptions when trying to access that node after
it has been implicitly or explicitly removed. After this patch, a node
will only be freed when the last userland reference disappears.

Fixes GH-9628.
Closes GH-11576.

show more ...

# 50b4df18 08-Jun-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Get rid of return value for php_libxml_unregister_node() (#11398)

# c3f07973 02-Jun-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Implement iteration cache, item cache and length cache for node list iteration (#11330)

* Implement iteration cache, item cache and length cache for node list iteration

The current

Implement iteration cache, item cache and length cache for node list iteration (#11330)

* Implement iteration cache, item cache and length cache for node list iteration

The current implementation follows the spec requirement that the list
must be "live". This means that changes in the document must be
reflected in the existing node lists without requiring the user to
refetch the node list.
The consequence is that getting any item, or the length of the list,
always starts searching from the root element of the node list. This
results in O(n) time to get any item or the length. If there's a for
loop over the node list, this means the iterations will take O(n²) time
in total. This causes real-world performance issues with potential for
downtime (see GH-11308 and its references for details).

We fix this by introducing a caching strategy. We cache the last
iterated object in the iterator, the last requested item in the node
list, and the last length computation. To invalidate the cache, we
simply count the number of modifications made to the containing
document. If the modification number does not match what the number was
during caching, we know the document has been modified and the cache is
invalid. If this ever overflows, we saturate the modification number and
don't do any caching anymore. Note that we don't check for overflow on
64-bit systems because it would take hundreds of years to overflow.

Fixes GH-11308.

show more ...

1234567891011