3626e2d5 | 24-Apr-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Get rid of remaining usages of zval_try_get_string() (#14041) This isn't necessary because the cases where we use it will always succeed because the properties always have the type strin
Get rid of remaining usages of zval_try_get_string() (#14041) This isn't necessary because the cases where we use it will always succeed because the properties always have the type string|null.
show more ...
|
86dfbadc | 19-Nov-2023 |
Gina Peter Banyard |
ext/mbstring: Always pass length to php_mb_get_encoding_or_pass() We have access to this information, so propagate it instead of calling strlen(). This also removes the newly introduced
ext/mbstring: Always pass length to php_mb_get_encoding_or_pass() We have access to this information, so propagate it instead of calling strlen(). This also removes the newly introduced _ex() variant.
show more ...
|
f8137084 | 24-Apr-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-13815: mb_trim() inaccurate $characters default value (#13820) Because the default characters are defined in the stub file, and the stub file is UTF-8 (typically), the characters
Fix GH-13815: mb_trim() inaccurate $characters default value (#13820) Because the default characters are defined in the stub file, and the stub file is UTF-8 (typically), the characters are encoded in the string as UTF-8. When using a different character encoding, there is a mismatch between what mb_trim expects and the UTF-8 encoded string it gets. One way of solving this is by making the characters argument nullable, which would mean that it always uses the internal code path that has the unicode codepoints that are defaulted actually stored as codepoint numbers instead of in a string. Co-authored-by: @ranvis
show more ...
|
9bbc195d | 23-Apr-2024 |
Arnaud Le Blanc |
Remove zend_strtod mutex (#13974) `zend_strtod.c` uses a global state (mostly an allocation freelist) protected by a mutex in ZTS builds. This state is used by `zend_dtoa()`, `zend_strtod()`
Remove zend_strtod mutex (#13974) `zend_strtod.c` uses a global state (mostly an allocation freelist) protected by a mutex in ZTS builds. This state is used by `zend_dtoa()`, `zend_strtod()`, and variants. This creates a lot of contention in concurrent loads. `zend_dtoa()` is used to format floats to string, e.g. in sprintf, json_encode, serialize, uniqid. Here I move the global state to the thread specific `executor_globals` and remove the mutex. The impact on non-concurrent environments is null or negligible, but there is a considerable speed up on concurrent environments, especially on Alpine/Musl.
show more ...
|