Commit graph

521 commits

Author SHA1 Message Date
Dmitry Stogov
c1965f58d4 Use reference counting instead of zval duplication 2014-06-05 16:04:11 +04:00
Dmitry Stogov
2625f145c8 Use extended iteration API to avoid in-place modification 2014-05-28 12:39:27 +04:00
Dmitry Stogov
376ab3b787 Nested PCRE calls may clobber extra->mark and it has to be reinitailized
This fixes invalid memory writes (detected with valgrind) in Zend/tests/closure_047.phpt and Zend/tests/closure_048.phpt.
2014-05-13 12:14:55 +04:00
Nikita Popov
f979e9afb0 More zend_string usage in PCRE
Avoid a few copies and zval duplications
2014-04-25 23:21:04 +02:00
Dmitry Stogov
f9927a6c97 Merge mainstream 'master' branch into refactoring
During merge I had to revert:
	Nikita's patch for php_splice() (it probably needs to be applyed again)
	Bob Weinand's patches related to constant expression handling (we need to review them carefully)
	I also reverted all our attempts to support sapi/phpdbg (we didn't test it anyway)

Conflicts:
	Zend/zend.h
	Zend/zend_API.c
	Zend/zend_ast.c
	Zend/zend_compile.c
	Zend/zend_compile.h
	Zend/zend_constants.c
	Zend/zend_exceptions.c
	Zend/zend_execute.c
	Zend/zend_execute.h
	Zend/zend_execute_API.c
	Zend/zend_hash.c
	Zend/zend_highlight.c
	Zend/zend_language_parser.y
	Zend/zend_language_scanner.c
	Zend/zend_language_scanner_defs.h
	Zend/zend_variables.c
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
	ext/date/php_date.c
	ext/dom/documenttype.c
	ext/hash/hash.c
	ext/iconv/iconv.c
	ext/mbstring/tests/zend_multibyte-10.phpt
	ext/mbstring/tests/zend_multibyte-11.phpt
	ext/mbstring/tests/zend_multibyte-12.phpt
	ext/mysql/php_mysql.c
	ext/mysqli/mysqli.c
	ext/mysqlnd/mysqlnd_reverse_api.c
	ext/mysqlnd/php_mysqlnd.c
	ext/opcache/ZendAccelerator.c
	ext/opcache/zend_accelerator_util_funcs.c
	ext/opcache/zend_persist.c
	ext/opcache/zend_persist_calc.c
	ext/pcre/php_pcre.c
	ext/pdo/pdo_dbh.c
	ext/pdo/pdo_stmt.c
	ext/pdo_pgsql/pgsql_driver.c
	ext/pgsql/pgsql.c
	ext/reflection/php_reflection.c
	ext/session/session.c
	ext/spl/spl_array.c
	ext/spl/spl_observer.c
	ext/standard/array.c
	ext/standard/basic_functions.c
	ext/standard/html.c
	ext/standard/mail.c
	ext/standard/php_array.h
	ext/standard/proc_open.c
	ext/standard/streamsfuncs.c
	ext/standard/user_filters.c
	ext/standard/var_unserializer.c
	ext/standard/var_unserializer.re
	main/php_variables.c
	sapi/phpdbg/phpdbg.c
	sapi/phpdbg/phpdbg_bp.c
	sapi/phpdbg/phpdbg_frame.c
	sapi/phpdbg/phpdbg_help.c
	sapi/phpdbg/phpdbg_list.c
	sapi/phpdbg/phpdbg_print.c
	sapi/phpdbg/phpdbg_prompt.c
2014-04-26 00:32:51 +04:00
Dmitry Stogov
d0ed1212a4 Enable PCRE JIT compiler 2014-04-25 08:33:37 +04:00
Dmitry Stogov
5864ce8a44 Fixed compilation warnings 2014-04-22 17:46:34 +04:00
Dmitry Stogov
7652a977a8 Use ZEND_FETCH_FOREACH_* macros to iterate over HashTables instead of zend_hash_move_forward() and family. 2014-04-18 19:18:11 +04:00
Dmitry Stogov
81b24d4100 Fixed reference support 2014-04-16 12:08:16 +04:00
Dmitry Stogov
d0cc5c633c Use zend_string* instead of char* 2014-04-15 22:10:39 +04:00
Dmitry Stogov
f9b26bc39a Cleanup (2-nd round) 2014-04-15 21:56:30 +04:00
Dmitry Stogov
050d7e38ad Cleanup (1-st round) 2014-04-15 15:40:40 +04:00
Dmitry Stogov
3d17219cd8 Refactored zend_hash_* iteration API zend_hash_fove_forward_ex(ht, pos) and family require second argument to be real pointer.
&(ht)->nInternalPointer should be passed instead of NULL.
zend_hash_update_current_key() may work only with internal pointer.
2014-04-07 23:14:17 +04:00
Dmitry Stogov
7240b4ec4d Avoid unnecessary zval separations 2014-04-02 01:56:16 +04:00
Dmitry Stogov
dccd97d347 Avoid unnecessary zval separations 2014-04-01 23:44:42 +04:00
Dmitry Stogov
c6cba55454 Use ZVAL_DEREF() macro 2014-03-27 13:39:09 +04:00
Dmitry Stogov
54d559d893 Replaced (Z_TYPE(x) == IS_REFERENCE) with (Z_ISREF(x)) 2014-03-27 11:50:45 +04:00
Nikita Popov
42562ee913 Add support for PCRE marks
If a MARK is set then it will be returned in the $matches array
unter key "MARK". If no MARK is used or passed, the key will not
be set.
2014-03-17 22:32:40 +01:00
Xinchen Hui
bf5e00f2e6 Fixed reference handling in pcre_grep 2014-03-16 15:40:35 +08:00
Xinchen Hui
412ca11eda Fixed reference arg hanlding in pcre_replace 2014-03-16 08:45:43 +08:00
Xinchen Hui
ef1e006bd6 Refactor php_pcre_replace to return zend_string 2014-03-16 08:44:07 +08:00
Dmitry Stogov
6ad3abcd3e Temporary fix memory leaks 2014-03-07 17:21:29 +04:00
Dmitry Stogov
b671c3a28a Fixed refcounting 2014-03-07 17:17:35 +04:00
Dmitry Stogov
d599d0cecd Temporary fix memory leaks 2014-03-07 17:14:16 +04:00
Dmitry Stogov
fff3c54f9e Added check 2014-03-06 22:07:28 +04:00
Xinchen Hui
10c7f2ddbc Fixed IS_REFERENCE handling in preg_match 2014-03-06 23:39:34 +08:00
Dmitry Stogov
045c5fddfa Fixed memory leaks 2014-02-28 13:37:55 +04:00
Dmitry Stogov
639e4e1afa Changes zend_is_callable() to use zend_string* instead of char* 2014-02-25 16:03:34 +04:00
Xinchen Hui
077b02326a Refactor php_addslashes using zend_string 2014-02-24 12:07:09 +08:00
Xinchen Hui
189a39a187 Fixed segfault 2014-02-19 18:49:00 +08:00
Xinchen Hui
43b03c74b3 Refacting smart_str 2014-02-18 17:42:46 +08:00
Dmitry Stogov
f4cfaf36e2 Use better data structures (incomplete) 2014-02-10 10:04:30 +04:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Xinchen Hui
47c9027772 Bump year 2014-01-03 11:06:16 +08:00
Xinchen Hui
c0d060f5c0 Bump year 2014-01-03 11:04:26 +08:00
Dmitry Stogov
6c2a806820 Avoid interned hash key duplication and hash key length recaclulation 2013-11-29 00:57:49 +04:00
Anatol Belski
96388c78c9 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix zts check
2013-03-14 14:39:47 +01:00
Anatol Belski
5df8cf1975 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix zts check
2013-03-14 14:39:09 +01:00
Anatol Belski
e43c5a8395 fix zts check 2013-03-14 14:38:20 +01:00
Anatol Belski
2635408a0d Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed PCRE locale crash in Windows/TS
2013-03-04 09:15:17 +01:00
Anatol Belski
4e46a87392 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed PCRE locale crash in Windows/TS
2013-03-04 09:14:14 +01:00
Stephen A. Zarkos
b6fdb60ecf Fixed PCRE locale crash in Windows/TS 2013-03-04 09:09:45 +01:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Xinchen Hui
a2045ff332 Happy New Year~ 2013-01-01 16:02:16 +08:00
Adam Harvey
0b96b4c4e9 Merge branch 'PHP-5.4'
* PHP-5.4:
  Update arginfo for preg_match_all() to reflect reality.
  fix invalid read when trimming empty string
2012-11-12 20:09:18 +08:00
Adam Harvey
bca8ff723d Update arginfo for preg_match_all() to reflect reality.
Back when I implemented FR #53238 during the 5.4 development phase to make the
$matches parameter optional in preg_match_all(), it turns out I forgot to
update the arginfo to note that only 2 parameters are now required by
preg_match_all(). The function itself works fine, but reflection was reporting
the wrong number of required parameters.
2012-11-12 20:04:26 +08:00
Dmitry Stogov
0716ddcdb2 Merge branch 'PHP-5.4'
* PHP-5.4:
  Fixed bug #63180 (Corruption of hash tables)
  fix bug #63369

Conflicts:
	NEWS
2012-10-26 09:49:21 -07:00
Dmitry Stogov
68b229ea73 Fixed bug #63180 (Corruption of hash tables) 2012-10-26 09:47:30 -07:00
Stanislav Malyshev
ab566a9712 Merge branch 'PHP-5.4'
* PHP-5.4:
  fix bug #55856: preg_replace should fail on trailing garbage
  Bug #62956: fixing private method signature validation
  NEWS for 886a50a
2012-08-28 22:02:15 -07:00