Files
wordpress/wp-includes/blocks.php
audrasjb deec6283f4 Editor: Free up transient memory leak in do_blocks().
There has been a memory inefficiency inside of `do_blocks()` where it
parses the given content then iterates through each top-level block to
render it. Unfortunately each top-level block can considerably add to
the overall memory use involved, and once moving on to the next
top-level block, all of the allocated memory will be retained until the
end of the call to `do_blocks()`.

In this change, each parsed block sub-tree is freed via reset to null
after it has been rendered. All top-level blocks are rendered
independently of each other and so this operation is safe — there are no
data dependencies between them.

This commit also includes follow-up changes committed in [60400] and [60402].

Rewieved by audrasjb.
Merges [60316], [60400] and [60402] to the 6.8 branch.
Props dmsnell, joemcgill.
Fixes #63588.


Built from https://develop.svn.wordpress.org/branches/6.8@60435


git-svn-id: http://core.svn.wordpress.org/branches/6.8@59771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-07-08 09:01:25 +00:00

110 KiB