[GIT-PULLS] [php-src] PR #22975: zip: skip the entry name allocation when there is no add_path

[email protected] (iliaal) Fri, 31 Jul 2026 14:43:55 +0000
Newsgroups php.git-pulls
Message-ID <[email protected]>
Pull Request: https://github.com/php/php-src/pull/22975
Author: iliaal

`php_zip_add_file()` takes a `char*`/length pair, so without a prefix to concatenate the entry name was allocated and released once per file only to pass one through. Hand it `file_stripped` directly, and hold `basename` until after the call because `file_stripped` can point into it.

Measured on 4000 files with `addGlob()`: 22.2/22.2/22.8 ms patched against 23.8/22.2/22.1 ms before, so the saving is under the noise of the `expand_filepath()` and `stat()` the loop already does per entry. This is about the redundant work, not about a number.

Same function as #22973, which is the correctness fix; this one only removes the allocation.