summaryrefslogtreecommitdiff
path: root/ext/pcre/php_pcre.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Don't discard char tables just generatedAnatol Belski2018-06-221-10/+1
| | |
* | | Improve locale character tables handling and reduce pattern cache sizeAnatol Belski2018-06-221-15/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a locale other than C is active, character tables are saved into the compile context. Every compiled pattern will have a pointer to the character table, that was present in the context at the time of the pattern compilation. Thus, the cache entries don't need to carry char tables pointer, which reduces their size to 8 bytes on 64-bit. Instead, the generated character tables are tracked in a separate HashTable. If a character table was generated before, it'll be assigned to the compile context when the locale changes. Otherwise a new char table will be generated and cached.
* | | Fixed bug #76514 Regression in preg_match makes it fail with ↵Anatol Belski2018-06-221-1/+1
| | | | | | | | | | | | | | | | | | | | | PREG_JIT_STACKLIMIT_ERROR Looks like some patterns might require more stack for JIT execution. It is a regression, as the same pattern was passing using JIT.
* | | Fix #76512: \w no longer includes unicode charactersChristoph M. Becker2018-06-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The migration from PCRE to PCRE2 missed to rename once occurrence of `PCRE_UCP` to `PCRE2_UCP`. We fix that. We also revert the changes to bug52971.phpt which had been incorrectly made in commit a5bc5ae[1]. [1] <http://git.php.net/?p=php-src.git;a=commit;h=a5bc5aed71f7a15f14f33bb31b8e17bf5f327e2d>
* | | Use zend_string_release_ex() instread of zend_string_release() in places, ↵Dmitry Stogov2018-05-281-23/+23
| | | | | | | | | | | | where we sure about string persistence.
* | | Reduce var scopeAnatol Belski2018-02-171-1/+2
| | |
* | | year++Xinchen Hui2018-01-021-1/+1
| | |
* | | Use zend_hash_find() instead of zend_hash_find_ptr() to avoid double checkDmitry Stogov2017-12-271-8/+6
| | |
* | | Fixed bug #75355: preg_quote() does not quote # control characterMichael Moravec2017-12-161-0/+2
| | |
* | | Merge branch 'PHP-7.2'Anatol Belski2017-12-051-1/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-7.2: Fix use after free revealed by phpdbg
| * | Merge branch 'PHP-7.1' into PHP-7.2Anatol Belski2017-12-051-1/+1
| |\ \ | | |/ | | | | | | | | | * PHP-7.1: Fix use after free revealed by phpdbg
| | * Fix use after free revealed by phpdbgAnatol Belski2017-12-051-1/+1
| | |
| | * Fixed bug #75601 Thread race in PCRE JIT supportAnatol Belski2017-12-051-0/+18
| | |
| * | Fixed bug #75601 Thread race in PCRE JIT supportAnatol Belski2017-12-051-0/+18
| | |
* | | Fixed bug #75601 Thread race in PCRE JIT supportAnatol Belski2017-12-051-0/+19
| | |
* | | Fix macro nameAnatol Belski2017-11-211-8/+8
| | |
* | | Merge branch 'PHP-7.2'Anatol Belski2017-11-211-0/+8
|\ \ \ | |/ / | | | | | | | | | * PHP-7.2: Fixed #75539 and #74183 - preg_last_error not returning error code after error
| * | Merge branch 'PHP-7.1' into PHP-7.2Anatol Belski2017-11-211-0/+8
| |\ \ | | |/ | | | | | | | | | * PHP-7.1: Fixed #75539 and #74183 - preg_last_error not returning error code after error
| | * Merge branch 'PHP-7.0' into PHP-7.1Anatol Belski2017-11-211-0/+8
| | |\ | | | | | | | | | | | | | | | | * PHP-7.0: Fixed #75539 and #74183 - preg_last_error not returning error code after error
| | | * Fixed #75539 and #74183 - preg_last_error not returning error code after errorNester2017-11-211-0/+8
| | | |
| | | * Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| | | |
| | * | Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| | | |
* | | | seemingly a tiny typo error in pcre module.David Carlier2017-11-211-1/+1
| | | |
* | | | Enable and fix printf() format warningsNikita Popov2017-11-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Add _unchecked() variants of zend_spprintf and zend_strpprintf for cases where we specifically want to disable these checks, such as use of %H.
* | | | Merge branch 'master' of git.php.net:php-srcDmitry Stogov2017-11-161-1/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git.php.net:php-src: Fix (*NO_JIT) usage when JIT is enabled Refactor ASCII to wide conversion
| * | | | Fix (*NO_JIT) usage when JIT is enabledAnatol Belski2017-11-161-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (*NO_JIT) is put into the pattern, the JIT compilation will still succeed but produce no code. The pattern will still have to be interpreted and is not suitable for the JIT fast path. This means, we still need to check the pattern info after JIT compilation and only set the flags when the JIT code was produced.
* | | | | Avoid unnecessary reference-counting on strings.Dmitry Stogov2017-11-161-11/+19
|/ / / /
* | | | Add missing ifdefAnatol Belski2017-11-151-0/+2
| | | |
* | | | Initialize jit globalAnatol Belski2017-11-141-0/+1
| | | |
* | | | Fix wrong returnAnatol Belski2017-11-141-1/+1
| | | |
* | | | Use already available pattern length, fix signedness warningsAnatol Belski2017-11-141-12/+14
| | | |
* | | | Merge branch 'PHP-7.2'Anatol Belski2017-11-141-4/+4
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-7.2: Fix UTF check in pcre_grep
| * | | Fix UTF check in pcre_grepAnatol Belski2017-11-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this case it loops through different subjects without looking for sub matches and matches are done against the same pattern. Thus, don't reset the UTF check flag but use it to check whether JIT should be used and otherwise let PCRE to do the job according to what was saved into the pattern.
* | | | Merge branch 'PHP-7.2'Anatol Belski2017-11-141-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-7.2: Fix uninitialized flag when JIT is disabled
| * | | Fix uninitialized flag when JIT is disabledAnatol Belski2017-11-141-1/+1
| | | |
* | | | Added PCRE_JIT_SUPPORT flagXinchen Hui2017-11-141-0/+6
| | | |
* | | | Fix calculation as sync with 48cee6d1Anatol Belski2017-11-141-1/+1
| | | |
* | | | Eliminated redundand codeDmitry Stogov2017-11-141-35/+35
| | | |
* | | | We don't need to calculate size of offset array, because ↵Dmitry Stogov2017-11-141-24/+18
| | | | | | | | | | | | | | | | pcre2_match_data_create() already takes size in pairs.
* | | | Put hardcoded value into macroAnatol Belski2017-11-131-7/+8
| | | |
* | | | Patch core for PCRE2 supportAnatol Belski2017-11-131-428/+604
| | | | | | | | | | | | | | | | RFC https://wiki.php.net/rfc/pcre2-migration
* | | | PCRE cache is "thread-local"Dmitry Stogov2017-11-011-4/+6
| | | |
* | | | RC manipulation cleanupXinchen Hui2017-11-011-3/+1
| | | |
* | | | single check is enoughDmitry Stogov2017-10-311-1/+1
| | | |
* | | | Added zend_hash_add_new_mem/zend_hash_str_add_new_mem. Use them to add new ↵Dmitry Stogov2017-10-311-2/+2
|/ / / | | | | | | | | | elements into PCRE cache (we checked the existance before).
* | | Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after ↵Dmitry Stogov2017-08-181-7/+2
| | | | | | | | | | | | first input string)
* | | Upgrade bundled PCRE to 8.41Anatol Belski2017-07-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HEADSUP! With PCRE 8.39 the JIT related code was changed in the way, that additional valgrind options became almost unavoidable. Valgrind had it already sometimes hard with JIT, now there are seem to be more cases requiring special valgrind options. For this reason, the new configure option --with-pcre-valgrind was introduced. The option is development/debugging only and turns on the Valgrind related pieces in PCRE, so then false positives are avoided to the big part. In addition, run-tests.php was added a new valgrind option, when the leak check is enabled and the test filepath contains pcre. Thus, to debug the code related to PCRE with JIT enabled, two things would likely make sense - configure --with-pcre-valgrind - valgrind option --smc-check=all if run-tests.php is not used The checks so far reveal no new issues.
* | | Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of preg_match()).Dmitry Stogov2017-07-071-0/+4
| | |
* | | Avoid string duplication in preg_split()Dmitry Stogov2017-06-281-19/+23
| | |
* | | Only compute callback name in error casesNikita Popov2017-06-251-6/+4
| | | | | | | | | | | | | | | Mostly the callback name is only used to report an error. Try to avoid calculating it if no error occurred.