Compare commits

...
Author SHA1 Message Date
Bob Weinand 45d2df5f11 Merge branch 'datibbaw/pow-operator' into PHP-5.6 2014-02-06 09:38:50 +01:00
datibbaw e5ded6e843 add T_POW (**) operator
Fixed recognition of the operator

Added opcode, still doing multiply instead of pow()

opcode now always returns int(42)

The right answer, but always a float

Yanked code from pow() implementation.

Should not handle negative long as exponent ourselves

Added test cases from pow()

Moved precedence higher than '~'

Added GMP operator overloading

Added ZEND_ASSIGN_POW (**=) operator.

Added pow() as a language construct.

Adjusted test cases for changed precedence.

Reduced pow() to shell function around ZEND_API pow_function()

Reduced test case to only contain edge cases
Added overloading test case

Moved unary minus above T_POW

Revert "Added pow() as a language construct."

Bad bad bad idea.

This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.

Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)

Rebase against master

Fixed tokenizer test case
2014-02-06 15:10:56 +08:00
Anatol Belski 190c7772c1 Merge branch 'PHP-5.6'
* PHP-5.6:
  more tests for ICU >= 52.1 compat
  fix tests for ICU >= 52.1
2014-02-05 20:14:19 +01:00
Anatol Belski bf0d383aba fix tests for ICU >= 52.1 2014-02-05 19:25:33 +01:00
Hannes Magnusson 7d62a321c7 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix year
2014-02-05 10:18:10 -08:00
Anatol Belski b35c788a62 Merge branch 'PHP-5.6'
* PHP-5.6:
  adapt test to curl 7.35.0 upgrade
2014-02-05 15:17:48 +01:00
Anatol Belski ff390d788f Merge branch 'PHP-5.6'
* PHP-5.6:
  move the NEWS entry into the right section
2014-02-05 10:52:17 +01:00
Daniel Lowrey 6c1cdd0814 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed SNI failure from missing Z_STRVAL_PP
2014-02-04 19:13:50 -07:00
Anatol Belski 60846fab58 Merge branch 'PHP-5.6'
* PHP-5.6:
  updated NEWS
  updated NEWS
2014-02-04 10:39:46 +01:00
Anatol Belski f27eaa1578 Merge branch 'PHP-5.6'
* PHP-5.6:
  pcre tests go with 8.34 upgrade
2014-02-04 10:35:19 +01:00
Anatol Belski 2e8e2db82a Merge branch 'PHP-5.6'
* PHP-5.6:
  pcre upgraded to 8.34
2014-02-04 10:32:09 +01:00
Ferenc Kovacs 0e764dc657 Merge branch 'PHP-5.6' 2014-02-03 04:21:27 +01:00
krakjoe 6597d86389 Merge branch 'PHP-5.6'
* PHP-5.6:
  windows
2014-02-02 15:14:53 +00:00
krakjoe eacab735e0 Merge branch 'PHP-5.6'
* PHP-5.6:
  clean symbols
2014-02-02 15:10:28 +00:00
krakjoe 8aaec7d1c3 Merge branch 'PHP-5.6'
* PHP-5.6:
  another patch from upstream
2014-02-02 14:59:30 +00:00
krakjoe 202dcc0f6a Merge branch 'PHP-5.6'
* PHP-5.6:
  woops
2014-02-02 14:50:43 +00:00
krakjoe ee42849f8f Merge branch 'PHP-5.6'
* PHP-5.6:
  better use of tmpnam/mkstemp
2014-02-02 14:42:54 +00:00
krakjoe 37f4f132fc Merge branch 'PHP-5.6'
* PHP-5.6:
  update version
2014-02-02 14:05:03 +00:00
krakjoe 4c6816ddf2 Merge branch 'PHP-5.6'
* PHP-5.6:
  remove use of zend directly, avoid leaks/bugs in modules etc
2014-02-02 13:51:05 +00:00
krakjoe dc02b5a1fd Merge branch 'master' of https://git.php.net/repository/php-src 2014-02-02 13:50:54 +00:00
Daniel Lowrey f08e8772a7 Merge branch 'PHP-5.6'
* PHP-5.6:
  Remove #if PHP_VERSION_ID version checks

Conflicts:
	ext/openssl/xp_ssl.c
2014-02-01 08:25:01 -07:00
Daniel Lowrey 0893a13e32 Remove #if PHP_VERSION_ID version checks 2014-02-01 08:13:53 -07:00
Daniel Lowrey f197dafd1c Merge branch 'PHP-5.6'
* PHP-5.6:
  Use master-agnostic zend_is_true checks

Conflicts:
	ext/openssl/xp_ssl.c
2014-01-31 14:22:35 -07:00
Anatol Belski 5ed1bdf9a5 fix ZTS build 2014-01-30 10:47:58 +01:00
Stanislav Malyshev 11e47b1cdc Merge branch 'PHP-5.6'
* PHP-5.6:
  tests still failing, so xfail for now until fixed
  tests still failing, so xfail for now until fixed
  tests still failing, so xfail for now until fixed
2014-01-29 23:48:44 -08:00
Stanislav Malyshev d76a6a3e4d tests still failing, so xfail for now until fixed 2014-01-29 23:48:44 -08:00
Yasuo Ohgaki 210b444e1d Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug data->fd not set to -1 for open_basedir failure.
2014-01-30 14:17:11 +09:00
Daniel Lowrey ba8cdc855d Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed build breakage from b4b4d9697f
2014-01-29 17:59:46 -07:00
Anatol Belski c91ad8233b fix merge error after b4b4d9697f 2014-01-29 22:50:56 +01:00
Andrey Hristov 79e0c273b8 Merge branch 'master' of git.php.net:php-src
Conflicts:
	ext/openssl/xp_ssl.c
2014-01-29 15:33:52 +02:00
Andrey Hristov 1c7f54d4f7 Merge branch 'PHP-5.6'
Conflicts:
	NEWS
	ext/openssl/xp_ssl.c
2014-01-29 15:32:02 +02:00
Remi Collet cbb1097770 Merge branch 'PHP-5.6'
* PHP-5.6:
  zip extension version 1.12.4
2014-01-29 14:01:03 +01:00
Remi Collet 83c302840e Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed Request #66574 Allow multiple paths in php_ini_scanned_path
2014-01-29 09:57:22 +01:00
Yasuo Ohgaki 3828b5d83d Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed zend.multibyte tests partially
2014-01-29 15:56:13 +09:00
Daniel Lowrey 6edc84fcdf Merge branch 'PHP-5.6'
* PHP-5.6:
  Update NEWS/UPGRADING
  Verify peers by default in client socket operations

Conflicts:
	ext/openssl/xp_ssl.c
2014-01-28 10:36:28 -07:00
Daniel Lowrey 4bc8f94b58 Merge branch 'master' of https://github.com/php/php-src
* 'master' of https://github.com/php/php-src:
  add text for the new constants
  add new consts
2014-01-28 09:53:17 -07:00
Andrey Hristov fb5c7cda5d Merge branch 'master' of git.php.net:php-src 2014-01-28 15:58:08 +02:00
Andrey Hristov 3834771b2e Merge branch 'PHP-5.6'
Conflicts:
	NEWS
	UPGRADING
2014-01-28 15:57:48 +02:00
Andrey Hristov d9078c7c8d Merge branch 'PHP-5.6' 2014-01-28 15:47:50 +02:00
Bob Weinand 4b8c098f02 Merge branch 'PHP-5.6' 2014-01-28 13:35:13 +01:00
Anatol Belski b1396cc7a5 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix *.dsp files related to bug #50333
2014-01-28 13:10:01 +01:00
Daniel Lowrey aafce7353e Merge branch '5.6'
* 5.6:
  Update NEWS/UPGRADING
  Prevent invalid SAN peer verification on null byte prefix attack
2014-01-27 15:00:04 -07:00
Yasuo Ohgaki 9f3a98b124 Merge branch 'PHP-5.6'
* PHP-5.6:
  Remove obsolete description
2014-01-27 18:58:06 +09:00
Stanislav Malyshev 473cd4d6a9 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix English and improve by Stas. Thanks :)
  Update source docs
  Revert "Update source docs"
  Update source docs
2014-01-26 17:21:33 -08:00
Stanislav Malyshev 586f379b88 Merge branch 'PHP-5.6'
* PHP-5.6:
  drop precision since trigonometric functions are non-portable
  XFAIL multibyte tests until they are fixed (bug 66582)
2014-01-26 15:51:46 -08:00
Stanislav Malyshev 909ef53e9d Merge branch 'PHP-5.6'
* PHP-5.6:
  drop precision since trigonometric functions are non-portable
2014-01-26 15:16:08 -08:00
Stanislav Malyshev 4e89151159 Merge branch 'PHP-5.6'
* PHP-5.6:
  XFAIL multibyte tests until they are fixed (bug 66582)
2014-01-26 15:12:40 -08:00
Stanislav Malyshev ceca4d2490 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix test
2014-01-26 14:31:43 -08:00
Stanislav Malyshev a0445644e0 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix test
2014-01-26 14:26:26 -08:00
Stanislav Malyshev 8e08f6c28d Merge branch 'PHP-5.6'
* PHP-5.6:
  fix test - new flag ZEND_ACC_HAS_TYPE_HINTS
2014-01-26 12:17:32 -08:00
Stanislav Malyshev c4259f90b1 fix test - new flag ZEND_ACC_HAS_TYPE_HINTS 2014-01-26 12:17:29 -08:00
Derick Rethans 6dd41435a3 Merge branch 'PHP-5.6' 2014-01-26 14:02:55 +01:00
Stanislav Malyshev c2a93ba3af Merge branch 'PHP-5.6'
* PHP-5.6:
  fix test bug62479.phpt
2014-01-25 23:27:48 -08:00
Stanislav Malyshev 1eee68d3f4 Merge branch 'PHP-5.6'
* PHP-5.6:
  Implement ldap_modify_batch.
2014-01-25 22:05:18 -08:00
Derick Rethans 0f62b94971 Merge branch 'PHP-5.6' 2014-01-25 16:16:42 +01:00
Ferenc Kovacs a791671f40 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix the primary qa email address and update the list of available people being able to add moderators to our lists
  Revert "Fix #62479: Some chars not parsed in passwords"
  Fix #62479: Some chars not parsed in passwords
2014-01-24 16:13:10 +01:00
Andrey Hristov 3aa6f8bfdd Merge branch 'PHP-5.6' 2014-01-24 12:31:33 +02:00
Andrey Hristov dc6b14149d Merge branch 'PHP-5.6'
Conflicts:
	ext/mysqlnd/mysqlnd_ps_codec.c
2014-01-24 12:15:03 +02:00
Xinchen Hui 874a0bb7eb Merge branch 'PHP-5.6' 2014-01-24 10:52:22 +08:00
Will Fitch 28e0a2129b Merge branch 'PHP-5.6'
* PHP-5.6:
  Update gitignore and Makefile for additional entries
2014-01-23 21:36:54 -05:00
Andrey Hristov 7072db5a6b FIx failing tests because of operator precedence 2014-01-23 18:20:13 +02:00
Anatol Belski 4904be6d94 Merge branch 'PHP-5.6'
* PHP-5.6:
  refixed that test for 5.5+
  5.5.10 next
2014-01-22 23:31:09 +01:00
Anatol Belski 03dfe0d5e0 Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed test
2014-01-22 15:41:45 +01:00
Anatol Belski dcdf236467 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix zts
2014-01-22 12:05:27 +01:00
Anatol Belski 74fff1512a Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed missing usleep() prototype in pgsql
2014-01-22 11:54:16 +01:00
Yasuo Ohgaki 36a7f48e84 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed previous commit may delete unwanted cookies. Sync tests from upper branches.
  Re-fixed bug #66469
2014-01-22 19:23:52 +09:00
Yasuo Ohgaki 9cefeea860 Merge branch 'PHP-5.6'
* PHP-5.6:
  Re-fixed bug #66469
2014-01-22 13:49:13 +09:00
Stanislav Malyshev d5f79e40e5 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix CVE ref for bug #66060
  fix CVE ref for bug #66060
  fix buglet in makedist
  5.4.26 next
  fix news
2014-01-21 13:29:13 -08:00
Anatol Belski 4b7148711b Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed post deactivate signature in ext\libxml
2014-01-21 17:15:12 +01:00
Johannes Schlüter 676864684b Merge branch 'PHP-5.6' 2014-01-21 16:40:13 +01:00
David Soria Parra 807d937e91 Merge branch 'PHP-5.6'
* PHP-5.6:
  Change automaticaly to automatically
2014-01-21 16:20:14 +01:00
Ferenc Kovacs 2bf13b2042 Merge branch 'PHP-5.6' 2014-01-21 11:21:28 +01:00
Ferenc Kovacs 15acd4ee50 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix these tests so they properly clean up after themselves.
2014-01-21 02:29:11 +01:00
Remi Collet a3541301eb Merge branch 'PHP-5.6'
* PHP-5.6:
  Skip those test which fails on ARM architecture
  dos2unix
2014-01-20 14:44:43 +01:00
Xinchen Hui aaad97675a Merge branch 'PHP-5.6' 2014-01-20 21:25:42 +08:00
Anatol Belski 89a9acea1f Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed glob compilation with vc12
2014-01-20 10:13:22 +01:00
Anatol Belski d501707248 Merge branch 'PHP-5.6'
* PHP-5.6:
  support for Visual C+ 2013
2014-01-20 10:05:37 +01:00
Remi Collet 5b5b9b9239 Merge branch 'PHP-5.6'
* PHP-5.6:
  Skip readline tests which fail with libedit Add specific libedit test (output slightly differs)
2014-01-20 09:39:39 +01:00
Remi Collet 3b82a477b0 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed Bug #66412 readline_clear_history() with libedit causes segfault after #65714
2014-01-20 08:41:04 +01:00
Yasuo Ohgaki fd45f1eb78 Merge branch 'PHP-5.6'
* PHP-5.6:
  Enable zend.multibyte tests. Tipcal configuration works, but most tests fail.
2014-01-19 13:33:27 +09:00
Anatol Belski d788a85736 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix C89 compat
2014-01-19 02:05:38 +01:00
Will Fitch 9eb4bc2f84 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix #62479: Some chars not parsed in passwords
2014-01-18 19:49:06 -05:00
Will Fitch 4e5195f82c Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix bug #66509: copy() arginfo incorrect since 5.4
2014-01-18 11:57:34 -05:00
Nikita Popov 89eab884d9 Merge branch 'PHP-5.6' 2014-01-18 14:44:57 +01:00
Johannes Schlüter 84efb8fc71 Merge branch 'PHP-5.6' 2014-01-18 13:53:15 +01:00
Adam Harvey 86096a99ec Merge branch 'PHP-5.6' 2014-01-17 20:29:31 +08:00
Michael Wallner f1fc5a5bf5 Merge branch 'PHP-5.6'
* PHP-5.6:
  Clarify always_populate_raw_post_data situation in 5.6
2014-01-17 12:19:17 +01:00
Anatol Belski deb56c010e Merge branch 'PHP-5.6' 2014-01-17 11:08:21 +01:00
Antony Dovgal cfce5a4d02 Merge branch 'master' of https://git.php.net/repository/php-src
* 'master' of https://git.php.net/repository/php-src:
  forked the test for bug #66481
2014-01-17 12:22:34 +04:00
Antony Dovgal a053e69991 fix indentation 2014-01-17 12:22:07 +04:00
Anatol Belski feb4eb850d Merge branch 'PHP-5.6'
* PHP-5.6:
  forked the test for bug #66481
2014-01-17 03:32:26 +01:00
Antony Dovgal 998f506b6d Merge branch 'fpm-apparmor-fixed' of https://github.com/notti/php-src
* 'fpm-apparmor-fixed' of https://github.com/notti/php-src:
  Add some basic and apparmor tests to fpm
  Add --force-stderr to fpm
  Add apparmor change hat functionality to fpm
2014-01-16 17:36:03 +04:00
Xinchen Hui 7691926bbe Merge branch 'PHP-5.6' 2014-01-16 14:42:14 +08:00
Yasuo Ohgaki 7b5b2b4efa Merge branch 'PHP-5.6'
* PHP-5.6:
  Bug #66481 Segfaults on session_name()
2014-01-16 11:35:57 +09:00
Dmitry Stogov 511a375e60 Merge branch 'PHP-5.6'
* PHP-5.6:
  Log information about cached scripts and keys
2014-01-15 12:15:41 +04:00
Dmitry Stogov 61028ad45e Merge branch 'PHP-5.6'
* PHP-5.6:
  We don't know PHP_5_6_X_API_NO yet
2014-01-15 11:11:01 +04:00
Yasuo Ohgaki e4f1eee6c3 Merge branch 'PHP-5.6'
* PHP-5.6:
  Added pg_lo_truncate() and 64bit large object support from PostgreSQL 9.3 and up
2014-01-15 14:39:56 +09:00
Yasuo Ohgaki a92c5b14cf Merge branch 'PHP-5.6'
* PHP-5.6:
  Always initialize pg_version() result array elements to prevent failed test with older postgresql servers. Add missing client_encoding element.
2014-01-15 14:28:08 +09:00
Yasuo Ohgaki ee4e5ce2cf Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed pg_version() crash with older postgresql
2014-01-15 13:32:43 +09:00
Yasuo Ohgaki 42c134df4b Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed session module is sending multiple set-cookie headers when session.use_strict_mode=1
2014-01-15 11:07:51 +09:00
Xinchen Hui aca07343ce Merge branch 'PHP-5.6' 2014-01-14 22:34:53 +08:00
Anatol Belski 25e57e702b fix uninitialized value 2014-01-14 09:47:27 +01:00
Yasuo Ohgaki 681e1a5ce0 Merge branch 'PHP-5.6'
* PHP-5.6:
  Made pg_version() return full connection info.
2014-01-14 10:16:43 +09:00
Paul Tarjan d599d36d49 Dont ignore errors from FT_Get_Glyph 2014-01-13 16:30:48 -08:00
Andrey Hristov bbc37e78e8 Merge branch 'master' of git.php.net:php-src 2014-01-14 01:32:36 +02:00
Andrey Hristov 73008bb5ce More refactoring of the big function generating execute requests 2014-01-14 01:31:16 +02:00
Dmitry Stogov 5980e987d2 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed ZTS build
2014-01-13 23:11:36 +04:00
Anatol Belski de137e5a8d Merge branch 'PHP-5.6'
* PHP-5.6:
  forked test for win32
2014-01-13 17:13:11 +01:00
Dmitry Stogov 127eb33b84 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66461 (PHP crashes if opcache.interned_strings_buffer=0)
2014-01-13 18:07:26 +04:00
Dmitry Stogov e141592da6 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66440 (Optimisation of conditional JMPs based on pre-evaluate constant function calls)
2014-01-13 16:16:57 +04:00
Dmitry Stogov f5182741a6 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  move common code into a function
2014-01-13 15:36:37 +04:00
Dmitry Stogov 3458dac342 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66471 (Keep backward compatibility)
2014-01-13 15:36:06 +04:00
Andrey Hristov cf9966671c Merge branch 'master' of git.php.net:php-src 2014-01-13 12:40:59 +02:00
Andrey Hristov 01d5e28057 move common code into a function 2014-01-13 12:40:39 +02:00
Dmitry Stogov aab2e8eb7e Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66474 (Optimizer bug in constant string to boolean conversion)
2014-01-13 12:08:23 +04:00
Bob Weinand a86e869ee8 Merge branch 'PHP-5.6' 2014-01-12 02:00:37 +01:00
Nikita Popov 4facc35413 Merge branch 'PHP-5.6' 2014-01-11 12:54:08 +01:00
Johannes Schlüter 82dfe1acc8 Merge branch 'PHP-5.6' 2014-01-10 16:04:29 +01:00
Anatol Belski 9aaea81cfe Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed EOL in the test
2014-01-09 15:29:16 +01:00
Anatol Belski 3572a0482d Merge branch 'PHP-5.6'
* PHP-5.6:
  added testcase from bug #65371
2014-01-09 15:25:18 +01:00
Dmitry Stogov 83b00bbd08 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed ADD_INTERNED_STRING() logic to support strings that are already interned. (Terry)
2014-01-09 13:50:12 +04:00
Gernot Vormayr e9883779a0 Add some basic and apparmor tests to fpm 2014-01-07 00:21:24 +01:00
Gernot Vormayr 32d9409a24 Add --force-stderr to fpm 2014-01-07 00:19:01 +01:00
Scott MacVicar 6fe34014f0 Merge branch 'PHP-5.6'
* PHP-5.6:
  [libxml] Unit test for libxml_disable_entity_loader()
2014-01-06 17:06:33 +00:00
Scott MacVicar 28beaaad9c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  [libxml] Unit test for libxml_disable_entity_loader()
2014-01-06 17:05:34 +00:00
Scott MacVicar 42f084c692 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  [libxml] Unit test for libxml_disable_entity_loader()
2014-01-06 17:05:16 +00:00
Scott MacVicar 24cc7c0be2 [libxml] Unit test for libxml_disable_entity_loader()
Summary:
Test to make sure libxml_disable_entity_loader() is behaving.
2014-01-06 17:04:54 +00:00
Anatol Belski e797e058c5 Merge branch 'PHP-5.6'
* PHP-5.6:
  one more extension for the basename test
2014-01-05 19:22:11 +01:00
Anatol Belski ac875f8f7e Merge branch 'PHP-5.6'
* PHP-5.6:
  improved the fix for bug #66395
  Fixed bug #66009 Failed compilation of PHP extension with C++ std library using VS 2012
  updated NEWS
  Fixed bug #66009 Failed compilation of PHP extension with C++ std library using VS 2012
2014-01-05 19:13:40 +01:00
Anatol Belski 19aafe43b2 Fixed bug #66009 Failed compilation of PHP extension with C++ std library using VS 2012
Visual Studio 2012 includes sanity checks for C++11 features, see
http://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.110).aspx
To fix the 'inline' keyword redefinition for C++ in debug mode, the
new macros ZEND_WIN32_KEEP_INLINE is introduced, ZEND_WIN32_FORCE_INLINE is
automatically appended in release mode.
2014-01-04 01:41:49 +01:00
Nikita Popov 250ee4c17a Merge branch 'PHP-5.6' 2014-01-04 01:30:44 +01:00
Anatol Belski 6e7d24dd14 Merge branch 'PHP-5.6'
* PHP-5.6:
  updated NEWS
2014-01-03 22:45:09 +01:00
Anatol Belski b502c0a3dc Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66395 basename function doesn't remove drive letter
2014-01-03 22:39:17 +01:00
Xinchen Hui b209c27302 Merge branch 'PHP-5.6' 2014-01-03 11:37:32 +08:00
Xinchen Hui af6c11c5f0 Bump year 2014-01-03 11:11:57 +08:00
Xinchen Hui 0f53e37494 Merge branch 'PHP-5.6' 2014-01-03 11:09:07 +08:00
Derick Rethans c9f909cd42 Merge branch 'PHP-5.6' 2014-01-02 12:52:26 +00:00
Derick Rethans 63d390cdf9 Merge branch 'PHP-5.6' 2014-01-02 12:47:52 +00:00
krakjoe 9e4ab7c53f Merge branch 'PHP-5.6'
* PHP-5.6:
  fix #66375 bad logic in sapi header callback routine
2014-01-01 13:01:41 +00:00
Felipe Pena 57a6209051 Merge branch 'PHP-5.6'
* PHP-5.6:
  - Fixed bug #66381 (__ss_family was changed on AIX 5.3)
2014-01-01 09:57:03 -02:00
Nikita Popov 73db3cda8b Merge branch 'PHP-5.6' 2013-12-30 14:41:45 +01:00
Michael Wallner 79d1c70e99 This should be an empty merge.
Merge branch 'PHP-5.6'

* PHP-5.6:
  update php.ini-*
  Add E_DEPRECATED when populating $HTTP_RAW_POST_DATA
  add 'never'
  fix type
  fix type; add tests for -1
  s/BOOLEAN/ENTRY/
  re-introduce always_populate_raw_post_data
2013-12-30 14:32:25 +01:00
Nikita Popov 056f3441fd Merge branch 'PHP-5.6' 2013-12-30 13:59:55 +01:00
Remi Collet a3c7971f94 Merge branch 'PHP-5.6'
* PHP-5.6:
  missing file from libzip 0.11.2
2013-12-30 10:00:19 +01:00
Remi Collet 7844fb292c Merge branch 'PHP-5.6'
* PHP-5.6:
  fix compat for PHP ABI changes
2013-12-30 08:47:23 +01:00
Remi Collet 717dcdaa67 Merge branch 'PHP-5.6'
* PHP-5.6:
  NEWS
2013-12-30 07:45:17 +01:00
Remi Collet 764190c1d6 Merge branch 'PHP-5.6'
* PHP-5.6:
  Sync with pecl/zip 1.12.4dev
2013-12-30 07:38:45 +01:00
Xinchen Hui 6b34343479 Merge branch 'PHP-5.6' 2013-12-30 11:07:42 +08:00
Xinchen Hui 8b72df0608 Merge branch 'PHP-5.6' 2013-12-30 10:58:56 +08:00
Xinchen Hui 408ae9a452 Merge branch 'PHP-5.6' 2013-12-30 10:52:21 +08:00
Remi Collet bd3e5aab1d Merge branch 'PHP-5.6'
* PHP-5.6:
  minor fix on previous
2013-12-28 14:29:38 +01:00
Remi Collet 8785e22bca Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop())
2013-12-28 14:26:24 +01:00
krakjoe 50f09d8256 Merge branch 'PHP-5.6'
* PHP-5.6:
  update version output
2013-12-27 18:04:06 +00:00
Xinchen Hui fb4678f1ac Merge branch 'PHP-5.6' 2013-12-27 20:46:08 +08:00
Xinchen Hui c0476ff44b Merge branch 'PHP-5.6' 2013-12-27 14:11:41 +08:00
Xinchen Hui 1a4863d560 Merge branch 'PHP-5.6' 2013-12-27 14:07:15 +08:00
Dmitry Stogov 65fd18fd88 Merge branch 'PHP-5.6'
* PHP-5.6:
  Improved empty string handling. Now ZE uses an interned string instead of allocation new empty string each time. (Some extensions might need to be fixed using str_efree() instead of efree() to support interned strings).

Conflicts:
	NEWS
	Zend/zend_extensions.h
	Zend/zend_modules.h
2013-12-26 14:51:05 +04:00
Xinchen Hui d6713f3989 Fixed warning "No new line at end of file" 2013-12-26 17:45:37 +08:00
Dmitry Stogov ef56cfb991 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed ZEND_MM_MEM_TYPE=mmap_zero
2013-12-26 11:53:03 +04:00
Anatol Belski c676f5b36d Merge branch 'PHP-5.6'
* PHP-5.6:
  fix c89 compat
2013-12-25 23:44:24 +01:00
Anatol Belski 734c28d242 Merge branch 'PHP-5.6'
* PHP-5.6:
  brought the ext/sybase_ct/config.w32 up to date
2013-12-25 23:31:17 +01:00
Xinchen Hui bd0a8f31a4 Merge branch 'master' of git.php.net:php-src 2013-12-25 15:36:45 +08:00
Xinchen Hui 03e36cd5b8 Merge branch 'PHP-5.6' 2013-12-25 15:35:02 +08:00
Stanislav Malyshev b3c43a1aec Merge branch 'PHP-5.6'
* PHP-5.6:
  5.4.25 next
2013-12-24 22:23:55 -08:00
Anatol Belski 3af0ee0ea3 Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed incompatible pointer in phpdbg on win64
2013-12-24 21:09:45 +01:00
Bob Weinand c02acf3c29 Merge branch 'PHP-5.6' 2013-12-24 13:20:12 +01:00
Joe Watkins ca8ff0725b update credits 2013-12-24 09:04:32 +00:00
Joe Watkins e07dfa96b3 Merge branch 'master' of https://git.php.net/repository/php-src
* 'master' of https://git.php.net/repository/php-src:
  Fixed credits in phpdbg.* files
  Added breaking upon fatal-ish error
  fix NEWS file for master
  credits file for phpdbg
  Fixed credits in phpdbg.* files
  reformat
  credits file
2013-12-24 09:03:55 +00:00
Bob Weinand ad358593a8 Merge branch 'PHP-5.6' 2013-12-24 00:37:20 +01:00
Stanislav Malyshev 6daa84f199 fix NEWS file for master 2013-12-23 15:25:38 -08:00
Joe Watkins 056f6fd895 Merge branch 'PHP-5.6'
* PHP-5.6:
  credits file for phpdbg
2013-12-23 22:37:36 +00:00
Stanislav Malyshev 392f6830a1 Merge branch 'PHP-5.6'
* PHP-5.6:
  restore NEWS to the state of 6c5e93fe17
2013-12-23 14:10:44 -08:00
Dmitry Stogov 67eccf8617 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66338 (Optimization binding of class constants is not safely opcacheable)
2013-12-23 16:54:54 +04:00
Dmitry Stogov bd88bed670 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  removed outdated IsDebuggerPresent declaration
2013-12-23 16:05:38 +04:00
Dmitry Stogov 209ec406ca Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66334 (Memory Leak in new pass1_5.c optimizations). (Terry)
2013-12-23 16:05:18 +04:00
Anatol Belski f4a96983e1 Merge branch 'PHP-5.6'
* PHP-5.6:
  removed outdated IsDebuggerPresent declaration
2013-12-23 12:01:26 +01:00
Dmitry Stogov 62fa84a031 Merge branch 'PHP-5.6'
* PHP-5.6:
  Added suggestion about opcache.revalidate_freq setting in development environment
2013-12-23 13:11:22 +04:00
Dmitry Stogov 5bc9e006e8 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed Issue #140: "opcache.enable_file_override" doesn't respect "opcache.revalidate_freq"
  fix news
  opcodes
  opcodes

Conflicts:
	NEWS
2013-12-23 12:52:27 +04:00
Sara Golemon 6a2a2b52f9 Bump ZEND_MODULE_API_NO due to the TSRMLS change to zend_is_true() 2013-12-22 14:10:59 -08:00
krakjoe befdd1770a fix news 2013-12-22 14:34:29 +00:00
krakjoe 523a6b50ae fix news file 2013-12-22 13:27:38 +00:00
krakjoe 8ce521a6a7 missing, apparently 2013-12-22 13:19:35 +00:00
krakjoe 621862a192 Merge branch 'PHP-5.6'
* PHP-5.6:
  stop warnings from unused opcode map
  - BFN

Conflicts:
	NEWS
	Zend/zend_vm_opcodes.h
2013-12-22 13:15:40 +00:00
Felipe Pena e700cbff22 Merge branch 'PHP-5.6'
* PHP-5.6:
  - Fixed bug #66311 (Stack smashing protection kills PDO/ODBC queries) patch by: michael at orlitzky dot com
2013-12-22 09:43:29 -02:00
Bob Weinand 2bf271bbb0 Merge branch 'PHP-5.6' 2013-12-22 01:08:47 +01:00
Bob Weinand 5b1f6caaf0 Merge branch 'PHP-5.6' 2013-12-22 00:57:31 +01:00
Bob Weinand 0cc89be244 Merge branch 'PHP-5.6' 2013-12-21 21:33:15 +01:00
Bob Weinand e2b75e5bb7 Merge branch 'PHP-5.6' 2013-12-21 19:32:41 +01:00
Christopher Jones 1b1b706818 Merge branch 'PHP-5.6'
* PHP-5.6:
  Align 'configure --help' columns
  Added NEWS and UPGRADING info for phpdbg
2013-12-20 10:05:52 -08:00
Bob Weinand 3926362d30 Merge branch 'master' of https://git.php.net/push/php-src 2013-12-20 14:36:28 +01:00
Bob Weinand f500be8838 Merge branch 'PHP-5.6' 2013-12-20 14:35:40 +01:00
Boris Lytochkin ba51a375ae Merge branch '5.6'
* 5.6:
  Fixed SNMP_ERR_TOOBIG handling for bulk walk operations. (Boris Lytochkin)
2013-12-20 00:47:26 +04:00
Derick Rethans db025b3789 Merge branch 'PHP-5.6' 2013-12-19 19:01:08 +00:00
Derick Rethans e1a5edaac2 Merge branch 'PHP-5.5' 2013-12-19 18:58:48 +00:00
Remi Collet e75b967610 Merge branch 'PHP-5.6'
* PHP-5.6:
  NEWS
  save a few memory
  Fixed Bug #66321 (ZipArchive::open() ze_obj->filename_len not real)
2013-12-19 10:56:25 +01:00
Michael Wallner 551569262b Merge branch 'PHP-5.6'
* PHP-5.6:
  Update NEWS handling section of README.GIT-RULES
2013-12-19 10:10:09 +01:00
krakjoe ce4ba54583 test commit 2013-12-19 10:08:51 +01:00
Bob Weinand b11b3d201f Fixed ZTS build. Needed to bump API version number. 2013-12-18 16:44:20 +01:00
Dmitry Stogov 26096aa73f Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed reavlidate_path=1 behavior to avoid caching of symlinks values.
2013-12-18 19:22:05 +04:00
Felipe Pena a8a36b7d52 - Fixed build 2013-12-18 08:28:44 -02:00
Kalle Sommer Nielsen aed4b086ac Eliminate the TSRMLS_FETCH() calls in the ticks functions and hook 2013-12-18 09:32:26 +01:00
Kalle Sommer Nielsen c83598119b Kill a TSRMLS_FETCH() in php_stream_context_set() by passing TSRMLS_CC to it
# For mysqlnd: Relevant PHP_API_VERSION are put in place for cross version compatibility
2013-12-18 09:19:24 +01:00
Kalle Sommer Nielsen d02340bb39 Kill a TSRMLS_FETCH() call in sapi/caudium 2013-12-18 09:11:15 +01:00
Kalle Sommer Nielsen f883d3cc7a We might as well re-use the TSRMLS parameters here as they are available in PHP_FUNCTION anyway to save a TSRMLS_FETCH() call 2013-12-18 09:10:45 +01:00
Kalle Sommer Nielsen ed5a8d510f Pass the TSRMLS parameters to the sapi flush hook, this shaves off a few TSRMLS_FETCH() calls in our various SAPIs 2013-12-18 09:06:39 +01:00
Kalle Sommer Nielsen f70f89c1b1 Kill another TSRMLS_FECH() in sapi/roxen 2013-12-18 09:05:01 +01:00
Kalle Sommer Nielsen 520d969fea Fix these SAPI hooks so that the TSRMLS parameters are correctly passed as required by the sapi struct
# Not sure if this builds either
2013-12-18 09:01:44 +01:00
Kalle Sommer Nielsen 432e91f112 Bump year
# Wonder if this is even working anymore
2013-12-18 08:55:19 +01:00
Kalle Sommer Nielsen e6b471933c Kill yet another TSRMLS_FETCH() inside the CLI HTTP server 2013-12-18 08:17:49 +01:00
Kalle Sommer Nielsen bd58146ad6 Kill another TSRMLS_FETCH() in the zend extension loading code 2013-12-18 07:59:47 +01:00
Kalle Sommer Nielsen 2eb9bd316d Merge branch 'master' of https://git.php.net/push/php-src 2013-12-18 07:27:14 +01:00
Kalle Sommer Nielsen d14670ccdb Eliminate another TSRMLS_FETCH() in i_zend_is_true()
# Affected extensions have all been updated, ext/opcache and ext/zip
# both have macros for cross version compatibility
2013-12-18 07:25:05 +01:00
Anatol Belski c0f1e6946d Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed possibly uninitialized value usage
2013-12-17 08:45:49 +01:00
Xinchen Hui 72389dd53f Merge branch 'PHP-5.6' 2013-12-17 15:37:26 +08:00
Xinchen Hui a9c503bc27 Merge branch 'PHP-5.6' 2013-12-17 15:10:56 +08:00
Xinchen Hui ac719610f4 Merge branch 'PHP-5.6' 2013-12-17 15:06:36 +08:00
Stanislav Malyshev 5613d70ee8 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix bug #65873 - Integer overflow in exif_read_data()
2013-12-16 11:38:00 -08:00
David Soria Parra d7d0ceb90d Merge branch 'PHP-5.6' 2013-12-16 10:28:11 -08:00
Dmitry Stogov 82d67af60d Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix tests expecting specific resource IDs
  fixed parameter order for zend_throw_exception_ex call
  Fix doc (svn -> git)
  Fix tests expecting specific resource IDs
  Test pushing
  Updated release process
2013-12-16 13:12:55 +04:00
Xinchen Hui 48dcc43488 Merge branch 'PHP-5.6' 2013-12-15 16:51:43 +08:00
Xinchen Hui 304d97933f Merge branch 'issue-phpt-resourceid-wincache' of https://github.com/EricSten/php-src 2013-12-15 16:26:11 +08:00
Anatol Belski fc4761a07c Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed parameter order for zend_throw_exception_ex call
  Fix doc (svn -> git)
  Test pushing
2013-12-14 20:48:44 +01:00
Eric Stenson 50377b5bf2 Fix tests expecting specific resource IDs
When Wincache or APC are installed, the resource IDs are not the same.
This is because Wincache takes a few resource objects for itself.  As a
result, these tests become false positives.

On Windows boxes, the microtime precision is not granular enough
to reliably register a difference if two calls to uniqid() are made
concurrently.  This is a fix to the uniqid() test to avoid the false
positive when run on Windows machines.  Also, added a test to exercise
the 'more_entropy' variant of uniqid().
2013-12-13 10:42:32 -08:00
Julien Pauli 735f930bac Merge branch 'PHP-5.6'
* PHP-5.6:
  Updated release process
2013-12-13 13:30:30 +01:00
Dmitry Stogov 9b829c92b5 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Use zend_error_noreturn here
  OCI8 build change: Fix source variable definition for C89 compatibility
  Kill another TSRMLS_FETCH() in zend_indent()
  Eliminate another straight forward TSRMLS_FETCH() in zend_startup_module()
  Fix build
  Add Tests for #65784 in 5.5
  Disallowed JMP into a finally block.
  Update NEWS for 5.5.7 release
  Fixed bug #65784 (Segfault with finally).
2013-12-13 11:15:38 +04:00
Xinchen Hui 914de05bf5 Merge branch 'PHP-5.6' 2013-12-13 11:37:53 +08:00
Christopher Jones e92ea13bff Merge branch 'PHP-5.6'
* PHP-5.6:
  OCI8 build change: Fix source variable definition for C89 compatibility
2013-12-12 15:23:23 -08:00
Kalle Sommer Nielsen 1433dec2d0 Kill another TSRMLS_FETCH() in zend_indent() 2013-12-12 22:09:38 +01:00
Kalle Sommer Nielsen 0fc8e6af0a Eliminate another straight forward TSRMLS_FETCH() in zend_startup_module()
# For THTTPD:
# The code that uses a call to this function is for older versions of PHP anyway so its not covered

# For Zend OpCache:
# Added a new define for 5.6 and wrapped the code around that so its still compatible with older version
2013-12-12 20:30:45 +01:00
Kalle Sommer Nielsen 4411641b1e Fix build 2013-12-12 20:25:10 +01:00
Xinchen Hui 8708b13d62 Merge remote-tracking branch 'origin/PHP-5.6' 2013-12-13 01:50:22 +08:00
Xinchen Hui 6a299514f8 Merge branch 'PHP-5.6'
Conflicts:
	NEWS
2013-12-13 00:54:36 +08:00
Xinchen Hui 0fbb421ec1 Merge branch 'PHP-5.6' 2013-12-13 00:15:11 +08:00
Dmitry Stogov fd4a7388d7 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  fix test
2013-12-12 16:46:15 +04:00
Michael Wallner c0e87e9bb1 Merge branch 'PHP-5.5'
* PHP-5.5:
  fix test
2013-12-12 12:10:08 +01:00
Dmitry Stogov 9d08f09e06 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  remove always_populate_raw_post_data INI entries from master, UPGRADING.INTERNALS coming shortly
2013-12-12 14:42:19 +04:00
Michael Wallner bc1c2b3b31 remove always_populate_raw_post_data INI entries from master, UPGRADING.INTERNALS coming shortly 2013-12-12 11:33:06 +01:00
Dmitry Stogov a23bcba875 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed bug #65486 mysqli_poll() is broken on Win x64
2013-12-12 13:59:37 +04:00
Dmitry Stogov 8738e6d86f Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed tests
  Fixed ext/soap/tests/bugs/bug54911.phpt
2013-12-12 13:55:42 +04:00
Anatol Belski 58b754ca4a Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #65486 mysqli_poll() is broken on Win x64
2013-12-12 10:46:36 +01:00
Adam Harvey b97156113e Merge branch 'PHP-5.6'
* PHP-5.6:
  Switch to using freetype-config for freetype detection.
2013-12-07 19:42:00 -08:00
Bob Weinand 98d929290c Merge branch 'PHP-5.6'
* PHP-5.6:
  Added one more test for constant scalar expressions
2013-12-11 19:20:10 +01:00
Anatol Belski fa1802381f Merge branch 'PHP-5.6'
* PHP-5.6:
  added missing prototype
2013-12-11 14:16:22 +01:00
Anatol Belski 2f707bf246 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix dir separator in cve-2013-6420 test
2013-12-11 13:33:59 +01:00
Ard Biesheuvel 9a5944d960 Merge branch 'PHP-5.6' 2013-12-11 08:51:27 +01:00
Stanislav Malyshev 35b8f57906 Merge branch 'PHP-5.6'
* PHP-5.6:
  5.3.29-dev
  Fix CVE-2013-6420 - memory corruption in openssl_x509_parse
2013-12-10 11:36:33 -08:00
Remi Collet 8e29235b6c Merge branch 'PHP-5.6'
* PHP-5.6:
  NEWS
  Fixed Bug #66218 zend_register_functions breaks reflection
2013-12-10 16:10:48 +01:00
Dmitry Stogov ad4f0c7812 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66112 (Use after free condition in SOAP extension). (martin dot koegler at brz dot gv dot at)
2013-12-10 17:59:20 +04:00
Dmitry Stogov d439b3970a Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66251 (Constants get statically bound at compile time when Optimized)
2013-12-10 17:05:23 +04:00
Dmitry Stogov 90c5689b59 Merge branch 'PHP-5.6'
* PHP-5.6:
  Revered func_get_args() changes, because they were not completly transparent and broke some tricky PHP code that worked because of luck before php-5.5.6 (see Bug #66107). The changes are going to be kept in PHP-5.6.
2013-12-10 16:08:56 +04:00
Dmitry Stogov 6eaf57eb3c Merge branch 'PHP-5.6'
* PHP-5.6:
2013-12-10 16:07:53 +04:00
Dmitry Stogov 1dafdaa31b Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Zend: fix overflow handling bug in non-x86 fast_add_function()
2013-12-10 15:15:46 +04:00
Dmitry Stogov 78265a44c5 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed memory leaks introdused by: 	commit 611da37617 	Author: Igor Wiedler <igor@wiedler.ch> 	Date:   Sat Nov 9 13:48:23 2013 -0500
2013-12-10 15:15:11 +04:00
Ard Biesheuvel c786c30108 Merge branch 'PHP-5.6' 2013-12-10 12:12:44 +01:00
Dmitry Stogov b260cb92e4 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66252 (Problems in AST evaluation invalidating valid parent:: reference. Constant expessions have to be evaluated in context of defining class).
2013-12-10 14:21:38 +04:00
Dmitry Stogov 6b6a4e466a Merge branch 'PHP-5.6'
* PHP-5.6:
  Arguments passed to user function have to be properly allocated on heap
2013-12-10 13:03:24 +04:00
Ard Biesheuvel 21fd125343 Merge branch 'PHP-5.6' 2013-12-09 17:04:05 +01:00
Stanislav Malyshev 912be12432 Merge branch 'PHP-5.6'
* PHP-5.6:
  Replace invalid code with a proper #error
2013-12-08 16:26:34 -08:00
Ferenc Kovacs e3ebe995c9 Merge branch 'PHP-5.6' 2013-12-06 11:07:36 +01:00
Michael Wallner d81d61fcc4 Merge branch 'PHP-5.6'
* PHP-5.6:
  BFN
2013-12-06 10:39:18 +01:00
Michael Wallner 01a13bb8c1 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #61645 (fopen and O_NONBLOCK)
  fix possibly uninitialized value
  Use 'user@example.com' rather than 'user@company.com' in tests
2013-12-06 10:34:11 +01:00
Sara Golemon 9adfcea241 Use 'user@example.com' rather than 'user@company.com' in tests
Using some arbitrary 3rd party's domain name is clowny,
even if it never tries to send.
2013-12-04 07:51:43 -08:00
Michael Wallner ecf95a4cc5 BFN 2013-12-05 11:30:52 +01:00
Michael Wallner 44ff944b37 Merge branch 'dba'
* dba:
  fix bug #62490
  more test fixes
  fix test
  fix php_stream_copy_to_stream_ex usage
  add missing clean section
  remove test for already removed feature
2013-12-05 11:27:26 +01:00
Michael Wallner 5a420c8680 fix bug #62490
inifiles delete handler did not return false if the key was not found
2013-12-05 11:04:25 +01:00
Adam Harvey de3b9bc77c Renumber the comments in php_request_shutdown() to be in order.
What, me OCD?
2013-12-04 14:29:45 -08:00
Andrey Hristov 0cb38a3d26 Merge branch 'master' of git.php.net:php-src
Conflicts:
	NEWS
2013-12-04 18:32:32 +02:00
Andrey Hristov 406d5a5ecc Merge branch 'PHP-5.6'
Conflicts:
	NEWS
	UPGRADING
2013-12-04 16:20:03 +02:00
Sara Golemon e51ddf9dc8 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix php_module_startup() when loading more than one additional module
2013-12-03 18:21:40 -08:00
Adam Harvey 8f11f7f179 Merge branch 'PHP-5.6'
* PHP-5.6:
  Remove 128.0.0.0/16 and 191.255.0.0/16 from the reserved list.
2013-12-03 14:54:24 -08:00
Michael Wallner f0c85fab45 more test fixes 2013-12-03 18:18:40 +01:00
Michael Wallner b0415856fd fix test 2013-12-03 17:55:26 +01:00
Michael Wallner 9e309a2d10 fix php_stream_copy_to_stream_ex usage 2013-12-03 17:55:18 +01:00
Michael Wallner a7f0465c0b add missing clean section 2013-12-03 17:07:40 +01:00
Michael Wallner f4912e3a96 remove test for already removed feature 2013-12-03 16:57:35 +01:00
Sebastian Bergmann 48cc47d55a Leftover: Bump version to 5.7.0 2013-12-03 07:42:37 +01:00
Nikita Popov a87233f98a Merge branch 'PHP-5.6' 2013-12-02 20:11:34 +01:00
Michael Wallner c23a1f78b4 Merge branch 'PHP-5.6'
* PHP-5.6:
  BFN
  Fix bug #65196
2013-12-02 17:03:30 +01:00
Michael Wallner 7cd702640d Fix Bug #64776 The XSLT extension is not thread safe. 2013-12-02 15:01:24 +01:00
Michael Wallner df484b0008 Merge branch 'PHP-5.6'
* PHP-5.6:
  BFN
  fix bug #49634x
2013-12-02 12:19:03 +01:00
Dmitry Stogov f8148a3905 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed tests
2013-12-02 12:05:49 +04:00
Dmitry Stogov 86c806a36e Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed ability to build non-specialized GOTO VM
2013-12-02 11:03:57 +04:00
Nikita Popov 1acee05579 Merge branch 'PHP-5.6' 2013-12-01 13:48:09 +01:00
Felipe Pena cb9000f15e Merge branch 'master' of git.php.net:/php-src 2013-11-30 11:41:23 -02:00
Felipe Pena 52611a2c7e Merge branch 'PHP-5.6'
* PHP-5.6:
  - Fixed bug #65923 (ext/socket assumes AI_V4MAPPED is defined)
2013-11-30 11:41:01 -02:00
Nikita Popov 508738251f Merge branch 'PHP-5.6' 2013-11-30 13:41:22 +01:00
Nikita Popov 2e0a960e97 Merge branch 'PHP-5.6' 2013-11-29 23:59:21 +01:00
Nikita Popov 065c8e77e2 Merge branch 'PHP-5.6' 2013-11-29 23:32:14 +01:00
Dmitry Stogov f65e652f9f Merge branch 'PHP-5.6'
* PHP-5.6:
  Added validation of class names in the autoload process
2013-11-29 12:55:38 +04:00
Nikita Popov 0eb519de66 Merge branch 'PHP-5.6' 2013-11-29 00:10:13 +01:00
Dmitry Stogov f92eba241e Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed bug #65199 (Wrong Day of Week) and fixed bug #63391 (Incorrect/inconsistent day of week prior to the year 1600)
  Marking those two as XFAIL for now.
  Fixed a few DST changeover issues.
  Move add/sub to timelib.
  Fix backwards transition diffs.
  Split up tests into their different categories.
  Group those tests a bit better, as some of the bd ones wanted a "ST" feature that doesn't exist yet.
  Fixed forward transitions in diffs.
  Always reset those parameters.
  Fixed "Forward Transition" construction of DateTime objects.
2013-11-29 00:59:47 +04:00
Dmitry Stogov 77cdda452d Merge branch 'PHP-5.6'
* PHP-5.6:
  Avoid interned hash key duplication and hash key length recaclulation
2013-11-29 00:59:26 +04:00
Derick Rethans 38574614c5 Merge branch 'PHP-5.6' 2013-11-28 16:33:23 +00:00
Derick Rethans 0d65cd50dd Merge branch 'master' of git.php.net:php-src 2013-11-28 14:45:56 +00:00
Derick Rethans b6ef87f803 Merge branch 'PHP-5.6' 2013-11-28 14:45:38 +00:00
Dmitry Stogov a1193b23b6 Merge branch 'PHP-5.6'
* PHP-5.6:
  Removed unused "pHashFunction" argument in _zend_hash_init() and family (must be 99% source compatible)
2013-11-28 18:42:57 +04:00
Dmitry Stogov 609efa2623 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Updated NEWS for Constant Scalar Exprs RFC
  Moved arrays again to "static_scalar:" & little cleanup
  Renaming
  Constant expressions refactoring
  Removed operations on constant arrays. They make no sense as constants are not allowed to be arrays. And as just properties are allowed to; no problem, we still don't need operations on any constant array.
  Added a few more operators
  Whitespace fix
  converted several switches to ifs and made more opcache friendly
  Fatal error about self referencing constants fixed
  Fixed mem leaks, added tests and ternary operator
  Working commit for constant scalar expressions (with constants). Tests will follow.
2013-11-28 17:03:59 +04:00
Dmitry Stogov 7fa9032d0b Merge branch 'PHP-5.6'
* PHP-5.6:
  Some rare deprecated cases replaced by ZEND_ASSERT() (some extensions might need to be fixed)
  Removed duplicated hash function implementation (100% source compatible)
2013-11-28 17:03:28 +04:00
Bob Weinand be5b98ef0d Merge branch 'PHP-5.6' 2013-11-28 13:53:00 +01:00
Dmitry Stogov 98f3c410d9 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed bug #53879 (DateTime::createFromFormat() fails to parse cookie expiration date)
2013-11-28 11:46:11 +04:00
Dmitry Stogov fe451e9a72 Merge branch 'PHP-5.6'
* PHP-5.6:
  Don't check argument types for internal functions without type hinting
2013-11-28 11:45:47 +04:00
Derick Rethans e7a6d0b163 Merge branch 'PHP-5.6' 2013-11-27 22:01:16 +00:00
Dmitry Stogov 45d399b96e Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed tests
2013-11-27 21:04:23 +04:00
Dmitry Stogov fca64efd62 Merge branch 'PHP-5.6'
* PHP-5.6:
  Removed deprecated AI_SET_PTR()s
2013-11-27 20:32:21 +04:00
Dmitry Stogov bc68ab8b57 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  NEWS
  Fixed bug #66060 (Heap buffer over-read in DateInterval)
2013-11-27 14:58:08 +04:00
Dmitry Stogov a3cb536d24 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #65969 (Chain assignment with T_LIST failure)
2013-11-27 14:56:48 +04:00
Remi Collet 42a35c9b8b Merge branch 'PHP-5.6'
* PHP-5.6:
  NEWS
  Fixed bug #66060 (Heap buffer over-read in DateInterval)
2013-11-27 11:16:18 +01:00
Julien Pauli e9f2de918d Merge branch 'PHP-5.6'
* PHP-5.6:
  5.5.8-dev now
2013-11-27 10:33:05 +01:00
Stanislav Malyshev 3baad45b21 Merge branch 'PHP-5.6'
* PHP-5.6:
2013-11-27 00:19:30 -08:00
Stanislav Malyshev b64ac1faa3 Merge branch 'PHP-5.5'
* PHP-5.5:
  5.4.24-dev now
2013-11-27 00:15:03 -08:00
George Wang 9960ecc5cd update to LSAPI 6.6 2013-11-26 18:53:35 -05:00
Andrey Hristov dd7c33d0c9 Merge branch 'master' of git.php.net:php-src 2013-11-26 20:10:17 +02:00
Dmitry Stogov 0d61202427 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed opcahce_reset() crash when opcache.protect_memory is set
2013-11-26 21:59:19 +04:00
Dmitry Stogov ccd1babbfc Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed a wrong test
2013-11-26 21:43:51 +04:00
Dmitry Stogov bbdcbbdba5 Merge branch 'PHP-5.6'
* PHP-5.6:
  Added an optimization of class constants and constant calls to some internal functions
  Added an optimization of class constants and constant calls to some internal functions

Conflicts:
	NEWS
2013-11-26 21:43:19 +04:00
Andrey Hristov 9c036b13f9 Merge branch 'PHP-5.5' 2013-11-26 19:37:43 +02:00
Dmitry Stogov 1d65e8f135 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66176 (Invalid constant substitution)
  Fixed bug #66176 (Invalid constant substitution)
2013-11-26 21:03:34 +04:00
Julien Pauli 8b83b48e98 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed a wrong test
2013-11-26 17:44:52 +01:00
Dmitry Stogov 34a55790f2 Merge branch 'PHP-5.6'
* PHP-5.6:
  Revert NEWS
  Fixed bug #66176 (Invalid constant substitution)
2013-11-26 17:49:38 +04:00
Dmitry Stogov 854c9abcd4 Merge branch 'PHP-5.6'
* PHP-5.6:
  Added test
2013-11-26 12:14:22 +04:00
Dmitry Stogov b3ce714cbf Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #65559 (Opcache: cache not cleared if changes occur while running)
2013-11-26 11:37:05 +04:00
Andrey Hristov 36a3011613 Merge branch 'PHP-5.5' 2013-11-25 21:33:14 +02:00
Dmitry Stogov 704b24d048 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed compatibility with old PHP versions
  Fixed bug #65915 (Inconsistent results with require return value)
2013-11-25 14:12:11 +04:00
Anatol Belski 7f0d637de4 Merge branch 'PHP-5.6'
* PHP-5.6:
  fixed test
  export more Zend API
2013-11-21 21:29:51 +01:00
Andrey Hristov e09e45eb86 Merge branch 'PHP-5.5' 2013-11-21 21:30:36 +02:00
Anatol Belski 6f2d32fd1f Merge branch 'PHP-5.6'
* PHP-5.6:
  permanently deactivate that place, not on runtime only
2013-11-20 10:12:29 +01:00
Yasuo Ohgaki bccead024d Merge branch 'PHP-5.6'
* PHP-5.6:
  added a test to cover distinction between boolean return value of unserialize function and deserializing serialized boolean
2013-11-20 07:25:45 +09:00
Jeff Welch b2ca20312d Fixed tests that fail with non-default serialize_precision configurations.
See:

 * https://bugs.php.net/bug.php?id=64760
 * 4dc4302
2013-11-20 06:17:57 +09:00
Remi Collet b41a2755c4 Merge branch 'PHP-5.6'
* PHP-5.6:
  avoid doing a stream_select on a closed stream
2013-11-19 12:43:00 +01:00
Andrea Faulds e68792dbb2 Merge branch 'PHP-5.6'
* PHP-5.6:
  Updated NEWS
  Removed UPGRADING note
  Rewrote test using tcp instead of http:// stream
  Implemented FR #65917 (getallheaders() is not supported by the built-in...)
2013-11-18 21:54:00 +00:00
kovacs.ferenc a833f7d460 Merge branch 'PHP-5.6' 2013-11-18 12:39:40 +01:00
Kalle Sommer Nielsen 9e3551ba1f Eliminated the TSRMLS_FETCH() in zend_set_memory_limit() 2013-11-18 01:36:17 +01:00
krakjoe f046189e34 export more Zend API 2013-11-17 22:39:31 +00:00
Xinchen Hui b93f8e6277 Merge branch 'PHP-5.6' 2013-11-17 17:20:27 +08:00
Xinchen Hui 5a282136a3 Merge branch 'PHP-5.5' 2013-11-17 17:11:20 +08:00
Christopher Jones 3e4e173296 Merge branch 'PHP-5.6'
* PHP-5.6:
  Update NEWS
  This is CLI web server change.  Added some common MIME types to the existing lookup list, pending a more thorough lookup solution, if anyone wants to do that.  Ref http://news.php.net/php.internals/69990
2013-11-15 12:38:18 -08:00
Remi Collet a37ff1fa4b Merge branch 'PHP-5.6'
* PHP-5.6:
  NEWS
  Fix Bug #65714 	PHP cli forces the tty to cooked mode
2013-11-15 09:53:23 +01:00
Adam Harvey 6cf46f49e3 Merge branch 'PHP-5.6' 2013-11-14 10:53:02 -08:00
Remi Collet b6f76adef4 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix failed test with recent glibc
  5.5.7 now
2013-11-13 13:21:28 +01:00
Nikita Popov b8525baecf Merge branch 'PHP-5.6' 2013-11-12 22:04:45 +01:00
Adam Harvey 91cb087727 Merge branch 'PHP-5.6'
* PHP-5.6:
  Update NEWS and remove the unnecessary UPGRADING note.
  UPGRADING and NEWS
  Better test: Check combined leading/trailing
  Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
2013-11-10 16:16:38 -05:00
Remi Collet fac240b5d1 Merge branch 'PHP-5.6'
* PHP-5.6:
  missing 'config.h' in 5dc37b3
2013-11-10 07:10:48 +01:00
Rasmus Lerdorf 7e01935dc2 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix broken test

Conflicts:
	NEWS
2013-11-09 09:49:09 -08:00
Adam Harvey 90d4ae4da8 Make all code paths in json_determine_array_type() return constants.
This is a purely cosmetic change, but the current behaviour of returning
PHP_JSON_OUTPUT_ARRAY and 1 looks weird.
2013-11-09 12:15:37 -05:00
Dmitry Stogov 43cb6ba763 Merge branch 'PHP-5.5'
* PHP-5.5:
  Fixed issue #115 (path issue when using phar). Fixed issue #149 (Phar mount points not working with OPcache enabled).

Conflicts:
	NEWS
2013-11-08 16:37:28 +04:00
Dmitry Stogov 8f097fb466 Merge branch 'PHP-5.6'
* PHP-5.6:
  Added tests for PHAR/OPCahce incompatibilities

Conflicts:
	NEWS
2013-11-08 14:16:40 +04:00
Xinchen Hui 6357cdaecf Merge branch 'PHP-5.5' 2013-11-08 15:33:57 +08:00
Xinchen Hui 4c13992f0d Merge branch 'PHP-5.5' 2013-11-08 15:09:08 +08:00
Rasmus Lerdorf 911ba0293a Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix bug #65946 - pdo_sql_parser.c permanently converts values bound to strings
  bump API versions
2013-11-07 18:10:39 -08:00
Rasmus Lerdorf 308edceb51 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src: (304 commits)
  OCI8 build change: Fix source variable definition for C89 compatibility
  bump version, empty NEWS, UPGRADING and UPGRADING.INTERNALS
  bump API versions
  configure output alignment
  Add a couple more test cases to parse_url() tests
  fix missing change from 'tcp_socket' to the more common 'server'
  fix many parallel test issues
  Cleanup temp test file
  Revert "Fixed issue #115 (path issue when using phar)."
  Update LiteSpeed SAPI code to V6.4
  Fixed typo in Makefile.frag
  updated NEWS
  Remove outdate codes, make it clearer, although just a bit..
  Update NEWS
  Fixed Bug #66034 (Segmentation Fault when constructor of PDO statement throws an exception)
  NEWS + UPGRADING
  Sync ext/zip with pecl/zip version 1.3.2 - update libzip to version 1.11.1. We don't use any private symbol anymore - new method ZipArchive::setPassword($password) - add --with-libzip option to build with system libzip
  Fixed coredump due to abnormal implemention of phar
  Fix English here
  limit virtual_cwd_activate() duplicated call to ZTS only
  ...
2013-11-07 07:55:44 -08:00
Christopher Jones 0d506131af OCI8 build change: Fix source variable definition for C89 compatibility 2013-11-06 10:37:22 -08:00
Ferenc Kovacs d17b684b91 bump version, empty NEWS, UPGRADING and UPGRADING.INTERNALS 2013-11-06 14:03:24 +01:00
Ferenc Kovacs 117955daf6 bump API versions 2013-11-06 14:03:24 +01:00
Remi Collet 1d93f396bb configure output alignment 2013-11-06 13:38:53 +01:00
Gernot Vormayr a90a93f1a4 Add apparmor change hat functionality to fpm 2013-07-02 13:06:02 +02:00
119 changed files with 7988 additions and 7861 deletions

No files matched your search

+5 -124
View File
@@ -1,130 +1,11 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2014, PHP 5.6.0 Alpha 2
- mysqli
. Added new function mysqli_get_links_stats() as well as new INI variable
mysqli.rollback_on_cached_plink of type bool (Andrey)
?? ??? 20??, PHP 5.7.0
- PCRE:
. Upgraded to PCRE 8.34. (Anatol)
- DBA:
. Fixed bug #62490 (dba_delete returns true on missing item (inifile)). (Mike)
23 Jan 2014, PHP 5.6.0 Alpha 1
- CLI server:
. Added some MIME types to the CLI web server. (Chris Jones)
- Core:
. Improved IS_VAR operands fetching. (Laruence, Dmitry)
. Improved empty string handling. Now ZE uses an interned string instead of
allocation new empty string each time. (Laruence, Dmitry)
. Implemented internal operator overloading
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)
. Made calls from incompatible context issue an E_DEPRECATED warning instead
of E_STRICT (phase 1 of RFC: https://wiki.php.net/rfc/incompat_ctx).
(Gustavo)
. Uploads equal or greater than 2GB in size are now accepted.
(Ralf Lang, Mike)
. Reduced POST data memory usage by 200-300%. Changed INI setting
always_populate_raw_post_data to throw a deprecation warning when enabling
and to accept -1 for never populating the $HTTP_RAW_POST_DATA global
variable, which will be the default in future PHP versions. (Mike)
. Implemented dedicated syntax for variadic functions
(RFC: https://wiki.php.net/rfc/variadics). (Nikita)
. Fixed bug #50333 Improving multi-threaded scalability by using
emalloc/efree/estrdup (Anatol, Dmitry)
. Implemented constant scalar expressions (with support for constants)
(RFC: https://wiki.php.net/rfc/const_scalar_exprs). (Bob)
. Fixed bug #65784 (Segfault with finally). (Laruence, Dmitry)
. Fixed bug #66509 (copy() arginfo has changed starting from 5.4). (willfitch)
- cURL:
. Implemented FR #65646 (re-enable CURLOPT_FOLLOWLOCATION with open_basedir
or safe_mode). (Adam)
- GMP:
. Moved GMP to use object as the underlying structure and implemented various
improvements based on this.
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)
. Added gmp_root() and gmp_rootrem() functions for calculating nth roots.
(Nikita)
- Hash:
. Added gost-crypto (CryptoPro S-box) GOST hash algo. (Manuel Mausz)
- JSON:
. Fixed case part of bug #64874 ("json_decode handles whitespace and
case-sensitivity incorrectly")
- mysqlnd:
. Disabled flag for SP OUT variables for 5.5+ servers as they are not natively
supported by the overlying APIs. (Andrey)
- OPcache:
. Added an optimization of class constants and constant calls to some
internal functions (Laruence, Dmitry)
. Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.
(Laruence, Dmitry)
. Added an optimization pass to merged identical constants (and related
cache_slots) in op_array->literals table. (Laruence, Dmitry)
. Added script level constant replacement optimization pass. (Dmitry)
- Openssl:
. Added crypto_method option for the ssl stream context. (Martin Jansen)
. Added certificate fingerprint support. (Tjerk Meesters)
. Added explicit TLSv1.1 and TLSv1.2 stream transports. (Daniel Lowrey)
. Fixed bug #65729 (CN_match gives false positive). (Tjerk Meesters)
. Peer name verification matches SAN DNS names for certs using
the Subject Alternative Name x509 extension. (Daniel Lowrey)
. Fixed segfault when built against OpenSSL>=1.0.1 (Daniel Lowrey)
. Peer certificates now verified by default in client socket operations
(RFC: https://wiki.php.net/rfc/tls-peer-verification). (Daniel Lowrey)
. Added SPKAC support. (Jason Gerfen)
- PDO_pgsql:
. Fixed Bug #42614 (PDO_pgsql: add pg_get_notify support). (Matteo)
. Fixed Bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3
syntax). (Matteo)
- phpdbg:
. Included phpdbg sapi (RFC: https://wiki.php.net/rfc/phpdbg).
(Felipe Pena, Joe Watkins and Bob Weinand)
- pgsql:
. pg_version() returns full report which obtained by PQparameterStatus().
(Yasuo)
. Added pg_lo_truncate(). (Yasuo)
. Added 64bit large object support for PostgreSQL 9.3 and later. (Yasuo)
- Session:
. Fixed Bug #65315 (session.hash_function silently fallback to default md5)
(Yasuo)
. Implemented Request #54649 (Create session_serializer_name()). (Yasuo)
. Implemented Request #17860 (Session write short circuit). (Yasuo)
. Implemented Request #20421 (session_abort() and session_reset() function).
(Yasuo)
. Implemented Request #11100 (session_gc() function). (Yasuo)
- Standard:
. Implemented FR #65634 (HTTP wrapper is very slow with protocol_version
1.1). (Adam)
. Implemented Change crypt() behavior w/o salt RFC. (Yasuo)
https://wiki.php.net/rfc/crypt_function_salt
. Implemented request #49824 (Change array_fill() to allow creating empty
array). (Nikita)
- XMLReader:
. Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency).
(Mike)
- Zip:
. update libzip to version 1.11.2.
PHP don't use any ilibzip private symbol anymore. (Pierre, Remi)
. new method ZipArchive::setPassword($password). (Pierre)
. add --with-libzip option to build with system libzip. (Remi)
. new methods:
ZipArchive::setExternalAttributesName($name, $opsys, $attr [, $flags])
ZipArchive::setExternalAttributesIndex($idx, $opsys, $attr [, $flags])
ZipArchive::getExternalAttributesName($name, &$opsys, &$attr [, $flags])
ZipArchive::getExternalAttributesIndex($idx, &$opsys, &$attr [, $flags])
- XSL:
. Fixed bug #64776 (The XSLT extension is not thread safe). (Mike)
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
+3 -104
View File
@@ -20,103 +20,34 @@ PHP X.Y UPGRADE NOTES
1. Backward Incompatible Changes
========================================
- JSON:
json_decode() no longer accepts non-lowercase variants of lone JSON true,
false or null values. For example, True or FALSE will now cause json_decode to
return NULL and set an error value you can fetch with json_last_error().
This affects JSON texts consisting solely of true, false or null. Text
containing non-lowercase values inside JSON arrays or objects has never been
accepted.
- openssl:
To prevent Man-in-the-Middle attacks against encrypted transfers client
streams now verify peer certificates by default. Previous versions
required users to manually enable peer verification. As a result of this
change, existing code using ssl:// or tls:// stream wrappers (e.g.
file_get_contents(), fsockopen(), stream_socket_client()) may no longer
connect successfully without manually disabling peer verification via the
stream context's "verify_peer" setting. Encrypted transfers delegate to
operating system certificate stores by default, so many/most users *should*
be unaffected by this transparent security enhancement.
- DBA
. dba_delete() now returns false if the key was not found for the inifile
handler, too.
========================================
2. New Features
========================================
- Added constant scalar expressions syntax
(https://wiki.php.net/rfc/const_scalar_exprs)
- Added dedicated syntax for variadic functions.
(https://wiki.php.net/rfc/variadics)
- Added support for argument unpacking to complement the variadic syntax.
(https://wiki.php.net/rfc/argument_unpacking)
- The php://input stream is now re-usable and can be used concurrently with
enable_post_data_reading=0.
- Added gost-crypto (CryptoPro S-box) hash algo.
- Added openssl certificate fingerprint support (inclusive stream context
option).
- Added openssl crypto method stream context option.
- Added openssl peer verification support for SAN x509 extension
- Added use function and use const.
(https://wiki.php.net/rfc/use_function)
========================================
2. Changes in SAPI modules
========================================
- Added phpdbg sapi.
(https://wiki.php.net/rfc/phpdbg)
========================================
3. Deprecated Functionality
========================================
- Incompatible context calls:
Instance calls from an incompatible context are now deprecated and issue
E_DEPRECATED instead of E_STRICT. See https://wiki.php.net/rfc/incompat_ctx
========================================
4. Changed Functions
========================================
- cURL:
CURLOPT_SAFE_UPLOAD is now turned on by default and uploads with @file
do not work unless it is explicitly set to false.
- Crypt:
crypt() will now raise an E_NOTICE error if the salt parameter is omitted.
See: https://wiki.php.net/rfc/crypt_function_salt
- XMLReader:
XMLReader::getAttributeNs and XMLReader::getAttributeNo now return NULL if
the attribute could not be found, just like XMLReader::getAttribute.
========================================
5. New Functions
========================================
- GMP:
Added gmp_root($a, $nth) and gmp_rootrem($a, $nth) for calculating nth roots.
- Openssl:
Added string openssl_x509_fingerprint($x509, $type, $binary).
Added string openssl_spki_new($private_key, $challenge, $algorithm)
Added bool openssl_spki_verify($spkac)
Added string openssl_spki_export($spkac)
Added string openssl_spki_export_challenge($spkac)
- LDAP:
Added ldap_escape($value, $ignore = "", $flags = 0).
- Zip:
Added ZipArchive::setPassword($password)
========================================
6. New Classes and Interfaces
@@ -132,50 +63,18 @@ PHP X.Y UPGRADE NOTES
8. Other Changes to Extensions
========================================
- GMP:
The GMP extension now uses objects as the underlying data structure, rather
than resources. GMP instances now support dumping, serialization, cloning,
casts to primitive types and have overloaded operators.
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp)
- OCI8:
- Added Implicit Result Set support for Oracle Database 12c with a
new oci_get_implicit_resultset() function.
- Using 'oci_execute($s, OCI_NO_AUTO_COMMIT)' for a SELECT no longer
unnecessarily initiates an internal ROLLBACK during connection
close.
- Added DTrace probes enabled with PHP's generic --enable-dtrace
- The oci_internal_debug() function is now a no-op.
- The phpinfo() output format for OCI8 has changed.
========================================
9. New Global Constants
========================================
- LDAP:
LDAP_ESCAPE_FILTER int(1)
LDAP_ESCAPE_DN int(2)
========================================
10. Changes to INI File Handling
========================================
- Core:
Changed always_populate_raw_post_data to throw a deprecation warning when
enabled and to recognize ohe value -1 for never populating the global
$HTTP_RAW_POST_DATA variable, which will be default in future PHP versions.
========================================
11. Other Changes
========================================
- File upload:
Uploads equal or greater than 2GB in size are now accepted.
- HTTP stream wrapper:
HTTP 1.1 requests now include a Connection: close header unless explicitly
overridden by setting a Connection header via the header context option.
- Zip:
New --with-libzip option allow to use system libzip. Version > 0.11 required,
Version >= 0.11.2 recommended for all features.
+1 -98
View File
@@ -17,108 +17,11 @@ UPGRADE NOTES - PHP X.Y
1. Internal API changes
========================
a. Addition of do_operation and compare object handlers
a. zend_set_memory_limit() now takes the TSRMLS_CC macro as its last argument
Two new object handlers have been added:
do_operation:
typedef int (*zend_object_do_operation_t)(
zend_uchar opcode, zval *result, zval *op1, zval *op2 TSRMLS_DC
);
compare:
typedef int (*zend_object_compare_zvals_t)(
zval *result, zval *op1, zval *op2 TSRMLS_DC
);
The first handler is used to overload arithmetic operations. The first
argument specifies the opcode of the operator, result is the target zval,
op1 the first operand and op2 the second operand. For unary operations
op2 is NULL. If the handler returns FAILURE PHP falls back to the default
behavior for the operation.
The second handler is used to perform comparison operations with
non-objects. The value written into result must be an IS_LONG with value
-1 (smaller), 0 (equal) or 1 (greater). The return value is a SUCCESS/FAILURE
return code. The difference between this handler and compare_objects is
that it will be triggered for comparisons with non-objects and objects of
different types. It takes precedence over compare_objects.
Further docs in the RFC: https://wiki.php.net/rfc/operator_overloading_gmp
b. return_value_ptr now always available, RETVAL_ZVAL_FAST macros
The return_value_ptr argument to internal functions is now always set.
Previously it was only available for functions returning by-reference.
return_value_ptr can now be used to return zvals without copying them.
For this purpose two new macros are provided:
RETVAL_ZVAL_FAST(zv); /* analog to RETVAL_ZVAL(zv, 1, 0) */
RETURN_ZVAL_FAST(zv); /* analog to RETURN_ZVAL(zv, 1, 0) */
The macros behave similarly to the non-FAST variants with copy=1 and
dtor=0, but will try to return the zval without making a copy by utilizing
return_value_ptr.
c. POST data handling
The sapi_request_info's members post_data, post_data_len and raw_post_data as
well as raw_post_data_len have been replaced with a temp PHP stream
request_body.
The recommended way to access raw POST data is to open and use a php://input
stream wrapper. It is safe to be used concurrently and more than once.
d. Arginfo changes
The pass_rest_by_reference argument of the ZEND_BEGIN_ARG_INFO and
ZEND_BEGIN_ARG_INFO_EX() is no longer used. The value passed to it is ignored.
Instead a variadic argument is created using ZEND_ARG_VARIADIC_INFO():
ZEND_ARG_VARIADIC_INFO(0, name) /* pass rest by value */
ZEND_ARG_VARIADIC_INFO(1, name) /* pass rest by reference */
ZEND_ARG_VARIADIC_INFO(ZEND_SEND_PREFER_REF, name)
/* pass rest by prefer-ref */
ZEND_ARG_VARIADIC_INFO() should only be used for the last argument.
The following changes were applied to the zend_arg_info struct:
typedef struct _zend_arg_info {
const char *class_name;
zend_uint class_name_len;
zend_uchar type_hint;
+ zend_uchar pass_by_reference;
zend_bool allow_null;
- zend_bool pass_by_reference;
+ zend_bool is_variadic;
} zend_arg_info;
The following changes were applied to the zend_internal_function_info struct:
typedef struct _zend_internal_function_info {
zend_uint required_num_args;
zend_uchar _type_hint;
zend_bool return_reference;
- zend_bool pass_rest_by_reference;
+ zend_bool _allow_null;
+ zend_bool _is_variadic;
} zend_internal_function_info;
The CHECK_ARG_SEND_TYPE(), ARG_MUST_BE_SENT_BY_REF(),
ARG_SHOULD_BE_SENT_BY_REF() and ARG_MAY_BE_SENT_BY_REF() macros now assume
that the argument passed to them is a zend_function* and that it is non-NULL.
========================
2. Build system changes
========================
a. Unix build system changes
- The bison version check is now a blacklist instead of a whitelist.
- The bison binary can be specified through the YACC environment/configure
variable. Previously `bison` was assumed to be in $PATH.
b. Windows build system changes
-
+1 -1
View File
@@ -52,7 +52,7 @@ ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path TSRMLS_DC)
ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
ZEND_API void (*zend_block_interruptions)(void);
ZEND_API void (*zend_unblock_interruptions)(void);
ZEND_API void (*zend_ticks_function)(int ticks);
ZEND_API void (*zend_ticks_function)(int ticks TSRMLS_DC);
ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
int (*zend_vspprintf)(char **pbuf, size_t max_len, const char *format, va_list ap);
ZEND_API char *(*zend_getenv)(char *name, size_t name_len TSRMLS_DC);
+3 -3
View File
@@ -22,7 +22,7 @@
#ifndef ZEND_H
#define ZEND_H
#define ZEND_VERSION "2.6.0-dev"
#define ZEND_VERSION "2.7.0-dev"
#define ZEND_ENGINE_2
@@ -550,7 +550,7 @@ typedef struct _zend_utility_functions {
void (*block_interruptions)(void);
void (*unblock_interruptions)(void);
int (*get_configuration_directive)(const char *name, uint name_length, zval *contents);
void (*ticks_function)(int ticks);
void (*ticks_function)(int ticks TSRMLS_DC);
void (*on_timeout)(int seconds TSRMLS_DC);
int (*stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
int (*vspprintf_function)(char **pbuf, size_t max_len, const char *format, va_list ap);
@@ -702,7 +702,7 @@ extern ZEND_API zend_write_func_t zend_write;
extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path TSRMLS_DC);
extern ZEND_API void (*zend_block_interruptions)(void);
extern ZEND_API void (*zend_unblock_interruptions)(void);
extern ZEND_API void (*zend_ticks_function)(int ticks);
extern ZEND_API void (*zend_ticks_function)(int ticks TSRMLS_DC);
extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0);
extern ZEND_API void (*zend_on_timeout)(int seconds TSRMLS_DC);
extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
+1 -3
View File
@@ -2313,10 +2313,8 @@ ZEND_API void zend_unregister_functions(const zend_function_entry *functions, in
}
/* }}} */
ZEND_API int zend_startup_module(zend_module_entry *module) /* {{{ */
ZEND_API int zend_startup_module(zend_module_entry *module TSRMLS_DC) /* {{{ */
{
TSRMLS_FETCH();
if ((module = zend_register_internal_module(module TSRMLS_CC)) != NULL && zend_startup_module_ex(module TSRMLS_CC) == SUCCESS) {
return SUCCESS;
}
+1 -1
View File
@@ -266,7 +266,7 @@ ZEND_API int zend_parse_parameter(int flags, int arg_num TSRMLS_DC, zval **arg,
ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_function_entry *functions, HashTable *function_table, int type TSRMLS_DC);
ZEND_API void zend_unregister_functions(const zend_function_entry *functions, int count, HashTable *function_table TSRMLS_DC);
ZEND_API int zend_startup_module(zend_module_entry *module_entry);
ZEND_API int zend_startup_module(zend_module_entry *module_entry TSRMLS_DC);
ZEND_API zend_module_entry* zend_register_internal_module(zend_module_entry *module_entry TSRMLS_DC);
ZEND_API zend_module_entry* zend_register_module_ex(zend_module_entry *module TSRMLS_DC);
ZEND_API int zend_startup_module_ex(zend_module_entry *module TSRMLS_DC);
+1 -3
View File
@@ -2682,10 +2682,8 @@ ZEND_API char *zend_strndup(const char *s, uint length)
}
ZEND_API int zend_set_memory_limit(size_t memory_limit)
ZEND_API int zend_set_memory_limit(size_t memory_limit TSRMLS_DC)
{
TSRMLS_FETCH();
AG(mm_heap)->limit = (memory_limit >= AG(mm_heap)->block_size) ? memory_limit : AG(mm_heap)->block_size;
return SUCCESS;
+1 -1
View File
@@ -139,7 +139,7 @@ inline static void * __zend_realloc(void *p, size_t len)
#define safe_estrdup(ptr) ((ptr)?(estrdup(ptr)):STR_EMPTY_ALLOC())
#define safe_estrndup(ptr, len) ((ptr)?(estrndup((ptr), (len))):STR_EMPTY_ALLOC())
ZEND_API int zend_set_memory_limit(size_t memory_limit);
ZEND_API int zend_set_memory_limit(size_t memory_limit TSRMLS_DC);
ZEND_API void start_memory_manager(TSRMLS_D);
ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC);
+5 -5
View File
@@ -231,9 +231,9 @@ ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *s
break;
case ZEND_BOOL_AND:
zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
if (zend_is_true(&op1)) {
if (zend_is_true(&op1 TSRMLS_CC)) {
zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
ZVAL_BOOL(result, zend_is_true(&op2));
ZVAL_BOOL(result, zend_is_true(&op2 TSRMLS_CC));
zval_dtor(&op2);
} else {
ZVAL_BOOL(result, 0);
@@ -242,18 +242,18 @@ ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *s
break;
case ZEND_BOOL_OR:
zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
if (zend_is_true(&op1)) {
if (zend_is_true(&op1 TSRMLS_CC)) {
ZVAL_BOOL(result, 1);
} else {
zend_ast_evaluate(&op2, (&ast->u.child)[1], scope TSRMLS_CC);
ZVAL_BOOL(result, zend_is_true(&op2));
ZVAL_BOOL(result, zend_is_true(&op2 TSRMLS_CC));
zval_dtor(&op2);
}
zval_dtor(&op1);
break;
case ZEND_SELECT:
zend_ast_evaluate(&op1, (&ast->u.child)[0], scope TSRMLS_CC);
if (zend_is_true(&op1)) {
if (zend_is_true(&op1 TSRMLS_CC)) {
if (!(&ast->u.child)[1]) {
*result = op1;
} else {
+2 -4
View File
@@ -60,7 +60,7 @@ ZEND_API zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array
ZEND_API void zend_execute(zend_op_array *op_array TSRMLS_DC);
ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC);
ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, struct _zend_fcall_info *fci, int return_value_used TSRMLS_DC);
ZEND_API int zend_is_true(zval *op);
ZEND_API int zend_is_true(zval *op TSRMLS_DC);
ZEND_API int zend_lookup_class(const char *name, int name_length, zend_class_entry ***ce TSRMLS_DC);
ZEND_API int zend_lookup_class_ex(const char *name, int name_length, const zend_literal *key, int use_autoload, zend_class_entry ***ce TSRMLS_DC);
ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name TSRMLS_DC);
@@ -101,7 +101,7 @@ static zend_always_inline void i_zval_ptr_dtor_nogc(zval *zval_ptr ZEND_FILE_LIN
}
}
static zend_always_inline int i_zend_is_true(zval *op)
static zend_always_inline int i_zend_is_true(zval *op TSRMLS_DC)
{
int result;
@@ -130,8 +130,6 @@ static zend_always_inline int i_zend_is_true(zval *op)
break;
case IS_OBJECT:
if(IS_ZEND_STD_OBJECT(*op)) {
TSRMLS_FETCH();
if (Z_OBJ_HT_P(op)->cast_object) {
zval tmp;
if (Z_OBJ_HT_P(op)->cast_object(op, &tmp, IS_BOOL TSRMLS_CC) == SUCCESS) {
+2 -2
View File
@@ -443,9 +443,9 @@ ZEND_API void _zval_internal_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC) /* {{{
}
/* }}} */
ZEND_API int zend_is_true(zval *op) /* {{{ */
ZEND_API int zend_is_true(zval *op TSRMLS_DC) /* {{{ */
{
return i_zend_is_true(op);
return i_zend_is_true(op TSRMLS_CC);
}
/* }}} */
+5 -7
View File
@@ -24,7 +24,7 @@
ZEND_API zend_llist zend_extensions;
static int last_resource_number;
int zend_load_extension(const char *path)
int zend_load_extension(const char *path TSRMLS_DC)
{
#if ZEND_EXTENSIONS_SUPPORT
DL_HANDLE handle;
@@ -107,7 +107,7 @@ int zend_load_extension(const char *path)
return FAILURE;
}
return zend_register_extension(new_extension, handle);
return zend_register_extension(new_extension, handle TSRMLS_CC);
#else
fprintf(stderr, "Extensions are not supported on this platform.\n");
/* See http://support.microsoft.com/kb/190351 */
@@ -119,7 +119,7 @@ int zend_load_extension(const char *path)
}
int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle)
int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle TSRMLS_DC)
{
#if ZEND_EXTENSIONS_SUPPORT
zend_extension extension;
@@ -127,7 +127,7 @@ int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle)
extension = *new_extension;
extension.handle = handle;
zend_extension_dispatch_message(ZEND_EXTMSG_NEW_EXTENSION, &extension);
zend_extension_dispatch_message(ZEND_EXTMSG_NEW_EXTENSION, &extension TSRMLS_CC);
zend_llist_add_element(&zend_extensions, &extension);
@@ -208,10 +208,8 @@ static void zend_extension_message_dispatcher(const zend_extension *extension, i
}
ZEND_API void zend_extension_dispatch_message(int message, void *arg)
ZEND_API void zend_extension_dispatch_message(int message, void *arg TSRMLS_DC)
{
TSRMLS_FETCH();
zend_llist_apply_with_arguments(&zend_extensions, (llist_apply_with_args_func_t) zend_extension_message_dispatcher TSRMLS_CC, 2, message, arg);
}
+4 -4
View File
@@ -28,7 +28,7 @@
/* The first number is the engine version and the rest is the date.
* This way engine 2/3 API no. is always greater than engine 1 API no..
*/
#define ZEND_EXTENSION_API_NO 220131226
#define ZEND_EXTENSION_API_NO 220131227
typedef struct _zend_extension_version_info {
int zend_extension_api_no;
@@ -94,7 +94,7 @@ struct _zend_extension {
BEGIN_EXTERN_C()
ZEND_API int zend_get_resource_handle(zend_extension *extension);
ZEND_API void zend_extension_dispatch_message(int message, void *arg);
ZEND_API void zend_extension_dispatch_message(int message, void *arg TSRMLS_DC);
END_EXTERN_C()
#define ZEND_EXTMSG_NEW_EXTENSION 1
@@ -117,8 +117,8 @@ int zend_startup_extensions(void);
void zend_shutdown_extensions(TSRMLS_D);
BEGIN_EXTERN_C()
ZEND_API int zend_load_extension(const char *path);
ZEND_API int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle);
ZEND_API int zend_load_extension(const char *path TSRMLS_DC);
ZEND_API int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle TSRMLS_DC);
ZEND_API zend_extension *zend_get_extension(const char *extension_name);
END_EXTERN_C()
+1 -2
View File
@@ -47,7 +47,7 @@ static void handle_whitespace(int *emit_whitespace)
}
ZEND_API void zend_indent()
ZEND_API void zend_indent(TSRMLS_D)
{
zval token;
int token_type;
@@ -55,7 +55,6 @@ ZEND_API void zend_indent()
int nest_level=0;
int emit_whitespace[256];
int i;
TSRMLS_FETCH();
memset(emit_whitespace, 0, sizeof(int)*256);
+1 -1
View File
@@ -23,7 +23,7 @@
#define ZEND_INDENT_H
BEGIN_EXTERN_C()
ZEND_API void zend_indent(void);
ZEND_API void zend_indent(TSRMLS_D);
END_EXTERN_C()
#endif /* ZEND_INDENT_H */
+4663 -4663
View File
File diff suppressed because it is too large. Load diff
+13 -13
View File
@@ -1,13 +1,13 @@
/* Generated by re2c 0.13.5 */
#line 3 "Zend/zend_ini_scanner_defs.h"
enum YYCONDTYPE {
yycINITIAL,
yycST_OFFSET,
yycST_SECTION_VALUE,
yycST_VALUE,
yycST_SECTION_RAW,
yycST_DOUBLE_QUOTES,
yycST_VARNAME,
yycST_RAW,
};
/* Generated by re2c 0.13.5 */
#line 3 "Zend/zend_ini_scanner_defs.h"
enum YYCONDTYPE {
yycINITIAL,
yycST_OFFSET,
yycST_SECTION_VALUE,
yycST_VALUE,
yycST_SECTION_RAW,
yycST_DOUBLE_QUOTES,
yycST_VARNAME,
yycST_RAW,
};
+1 -1
View File
@@ -162,7 +162,7 @@ ZEND_API int zend_user_it_valid(zend_object_iterator *_iter TSRMLS_DC)
zend_call_method_with_0_params(&object, iter->ce, &iter->ce->iterator_funcs.zf_valid, "valid", &more);
if (more) {
result = i_zend_is_true(more);
result = i_zend_is_true(more TSRMLS_CC);
zval_ptr_dtor(&more);
return result ? SUCCESS : FAILURE;
}
+6 -1
View File
@@ -72,7 +72,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_PRINT "print (T_PRINT)"
%right T_YIELD
%token T_YIELD "yield (T_YIELD)"
%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL
%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL
%token T_PLUS_EQUAL "+= (T_PLUS_EQUAL)"
%token T_MINUS_EQUAL "-= (T_MINUS_EQUAL)"
%token T_MUL_EQUAL "*= (T_MUL_EQUAL)"
@@ -109,6 +109,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%nonassoc T_INSTANCEOF
%token T_INSTANCEOF "instanceof (T_INSTANCEOF)"
%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@'
%right T_POW
%token T_INC "++ (T_INC)"
%token T_DEC "-- (T_DEC)"
%token T_INT_CAST "(int) (T_INT_CAST)"
@@ -213,6 +214,8 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
%token T_DIR "__DIR__ (T_DIR)"
%token T_NS_SEPARATOR "\\ (T_NS_SEPARATOR)"
%token T_ELLIPSIS "... (T_ELLIPSIS)"
%token T_POW "** (T_POW)"
%token T_POW_EQUAL "**= (T_POW_EQUAL)"
%% /* Rules */
@@ -778,6 +781,7 @@ expr_without_variable:
| variable T_PLUS_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MINUS_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MUL_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_POW_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_POW, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_DIV_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_CONCAT_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MOD_EQUAL expr { zend_check_writable_variable(&$1); zend_do_end_variable_parse(&$1, BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &$$, &$1, &$3 TSRMLS_CC); }
@@ -802,6 +806,7 @@ expr_without_variable:
| expr '+' expr { zend_do_binary_op(ZEND_ADD, &$$, &$1, &$3 TSRMLS_CC); }
| expr '-' expr { zend_do_binary_op(ZEND_SUB, &$$, &$1, &$3 TSRMLS_CC); }
| expr '*' expr { zend_do_binary_op(ZEND_MUL, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_POW expr { zend_do_binary_op(ZEND_POW, &$$, &$1, &$3 TSRMLS_CC); }
| expr '/' expr { zend_do_binary_op(ZEND_DIV, &$$, &$1, &$3 TSRMLS_CC); }
| expr '%' expr { zend_do_binary_op(ZEND_MOD, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_SL expr { zend_do_binary_op(ZEND_SL, &$$, &$1, &$3 TSRMLS_CC); }
+2324 -2302
View File
File diff suppressed because it is too large. Load diff
+8
View File
@@ -1383,6 +1383,14 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_MUL_EQUAL;
}
<ST_IN_SCRIPTING>"*\*" {
return T_POW;
}
<ST_IN_SCRIPTING>"*\*=" {
return T_POW_EQUAL;
}
<ST_IN_SCRIPTING>"/=" {
return T_DIV_EQUAL;
}
+1 -1
View File
@@ -1,4 +1,4 @@
/* Generated by re2c 0.13.5 on Sun Dec 22 13:03:33 2013 */
/* Generated by re2c 0.13.5 */
#line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE {
+1 -1
View File
@@ -33,7 +33,7 @@
#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module TSRMLS_DC
#define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module TSRMLS_CC
#define ZEND_MODULE_API_NO 20131226
#define ZEND_MODULE_API_NO 20131227
#ifdef ZTS
#define USING_ZTS 1
#else
+7 -6
View File
@@ -29,6 +29,7 @@
#include "zend_interfaces.h"
#include "zend_closures.h"
#include "zend_compile.h"
#include "zend_hash.h"
#define DEBUG_OBJECT_HANDLERS 0
@@ -188,7 +189,7 @@ static int zend_std_call_setter(zval *object, zval *member, zval *value TSRMLS_D
zval_ptr_dtor(&value);
if (retval) {
result = i_zend_is_true(retval) ? SUCCESS : FAILURE;
result = i_zend_is_true(retval TSRMLS_CC) ? SUCCESS : FAILURE;
zval_ptr_dtor(&retval);
return result;
} else {
@@ -693,12 +694,12 @@ static int zend_std_has_dimension(zval *object, zval *offset, int check_empty TS
SEPARATE_ARG_IF_REF(offset);
zend_call_method_with_1_params(&object, ce, NULL, "offsetexists", &retval, offset);
if (EXPECTED(retval != NULL)) {
result = i_zend_is_true(retval);
result = i_zend_is_true(retval TSRMLS_CC);
zval_ptr_dtor(&retval);
if (check_empty && result && EXPECTED(!EG(exception))) {
zend_call_method_with_1_params(&object, ce, NULL, "offsetget", &retval, offset);
if (retval) {
result = i_zend_is_true(retval);
result = i_zend_is_true(retval TSRMLS_CC);
zval_ptr_dtor(&retval);
}
}
@@ -1442,7 +1443,7 @@ static int zend_std_has_property(zval *object, zval *member, int has_set_exists,
guard->in_isset = 1; /* prevent circular getting */
rv = zend_std_call_issetter(object, member TSRMLS_CC);
if (rv) {
result = zend_is_true(rv);
result = zend_is_true(rv TSRMLS_CC);
zval_ptr_dtor(&rv);
if (has_set_exists && result) {
if (EXPECTED(!EG(exception)) && zobj->ce->__get && !guard->in_get) {
@@ -1451,7 +1452,7 @@ static int zend_std_has_property(zval *object, zval *member, int has_set_exists,
guard->in_get = 0;
if (rv) {
Z_ADDREF_P(rv);
result = i_zend_is_true(rv);
result = i_zend_is_true(rv TSRMLS_CC);
zval_ptr_dtor(&rv);
} else {
result = 0;
@@ -1470,7 +1471,7 @@ static int zend_std_has_property(zval *object, zval *member, int has_set_exists,
result = (Z_TYPE_PP(value) != IS_NULL);
break;
default:
result = zend_is_true(*value);
result = zend_is_true(*value TSRMLS_CC);
break;
case 2:
result = 1;
+3
View File
@@ -768,6 +768,9 @@ ZEND_API binary_op_type get_binary_op(int opcode)
case ZEND_ASSIGN_MUL:
return (binary_op_type) mul_function;
break;
case ZEND_POW:
return (binary_op_type) pow_function;
break;
case ZEND_DIV:
case ZEND_ASSIGN_DIV:
return (binary_op_type) div_function;
+81
View File
@@ -963,6 +963,87 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ *
}
/* }}} */
ZEND_API int pow_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
{
zval op1_copy, op2_copy;
int converted = 0;
while (1) {
switch (TYPE_PAIR(Z_TYPE_P(op1), Z_TYPE_P(op2))) {
case TYPE_PAIR(IS_LONG, IS_LONG):
if (Z_LVAL_P(op2) >= 0) {
long l1 = 1, l2 = Z_LVAL_P(op1), i = Z_LVAL_P(op2);
if (i == 0) {
ZVAL_LONG(result, 1L);
return SUCCESS;
} else if (l2 == 0) {
ZVAL_LONG(result, 0);
return SUCCESS;
}
while (i >= 1) {
long overflow;
double dval = 0.0;
if (i % 2) {
--i;
ZEND_SIGNED_MULTIPLY_LONG(l1, l2, l1, dval, overflow);
if (overflow) {
ZVAL_DOUBLE(result, dval * pow(l2, i));
return SUCCESS;
}
} else {
i /= 2;
ZEND_SIGNED_MULTIPLY_LONG(l2, l2, l2, dval, overflow);
if (overflow) {
ZVAL_DOUBLE(result, (double)l1 * pow(dval, i));
return SUCCESS;
}
}
}
/* i == 0 */
ZVAL_LONG(result, l1);
} else {
ZVAL_DOUBLE(result, pow((double)Z_LVAL_P(op1), (double)Z_LVAL_P(op2)));
}
return SUCCESS;
case TYPE_PAIR(IS_LONG, IS_DOUBLE):
ZVAL_DOUBLE(result, pow((double)Z_LVAL_P(op1), Z_DVAL_P(op2)));
return SUCCESS;
case TYPE_PAIR(IS_DOUBLE, IS_LONG):
ZVAL_DOUBLE(result, pow(Z_DVAL_P(op1), (double)Z_LVAL_P(op2)));
return SUCCESS;
case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE):
ZVAL_DOUBLE(result, pow(Z_DVAL_P(op1), Z_DVAL_P(op2)));
return SUCCESS;
default:
if (!converted) {
ZEND_TRY_BINARY_OBJECT_OPERATION(ZEND_POW);
if (Z_TYPE_P(op1) == IS_ARRAY) {
ZVAL_LONG(op1, 0);
} else {
zendi_convert_scalar_to_number(op1, op1_copy, result);
}
if (Z_TYPE_P(op2) == IS_ARRAY) {
ZVAL_LONG(op2, 0);
} else {
zendi_convert_scalar_to_number(op2, op2_copy, result);
}
converted = 1;
} else {
zend_error(E_ERROR, "Unsupported operand types");
return FAILURE;
}
}
}
}
ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ */
{
zval op1_copy, op2_copy;
+1
View File
@@ -47,6 +47,7 @@ BEGIN_EXTERN_C()
ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int pow_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int mod_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_API int boolean_xor_function(zval *result, zval *op1, zval *op2 TSRMLS_DC);
+31 -11
View File
@@ -2104,7 +2104,7 @@ ZEND_VM_HANDLER(43, ZEND_JMPZ, CONST|TMP|VAR|CV, ANY)
if (OP1_TYPE == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
FREE_OP1();
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2134,7 +2134,7 @@ ZEND_VM_HANDLER(44, ZEND_JMPNZ, CONST|TMP|VAR|CV, ANY)
if (OP1_TYPE == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
FREE_OP1();
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2164,7 +2164,7 @@ ZEND_VM_HANDLER(45, ZEND_JMPZNZ, CONST|TMP|VAR|CV, ANY)
if (OP1_TYPE == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
FREE_OP1();
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2198,7 +2198,7 @@ ZEND_VM_HANDLER(46, ZEND_JMPZ_EX, CONST|TMP|VAR|CV, ANY)
if (OP1_TYPE == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
FREE_OP1();
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2229,7 +2229,7 @@ ZEND_VM_HANDLER(47, ZEND_JMPNZ_EX, CONST|TMP|VAR|CV, ANY)
if (OP1_TYPE == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
FREE_OP1();
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -3484,7 +3484,7 @@ ZEND_VM_HANDLER(52, ZEND_BOOL, CONST|TMP|VAR|CV, ANY)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(GET_OP1_ZVAL_PTR(BP_VAR_R)));
ZVAL_BOOL(retval, i_zend_is_true(GET_OP1_ZVAL_PTR(BP_VAR_R) TSRMLS_CC));
FREE_OP1();
CHECK_EXCEPTION();
@@ -4647,7 +4647,7 @@ ZEND_VM_HANDLER(114, ZEND_ISSET_ISEMPTY_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -4719,7 +4719,7 @@ ZEND_VM_C_LABEL(num_index_prop):
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -4913,7 +4913,7 @@ ZEND_VM_HANDLER(152, ZEND_JMP_SET, CONST|TMP|VAR|CV, ANY)
SAVE_OPLINE();
value = GET_OP1_ZVAL_PTR(BP_VAR_R);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
if (!IS_OP1_TMP_FREE()) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
@@ -4939,7 +4939,7 @@ ZEND_VM_HANDLER(158, ZEND_JMP_SET_VAR, CONST|TMP|VAR|CV, ANY)
SAVE_OPLINE();
value = GET_OP1_ZVAL_PTR(BP_VAR_R);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) {
Z_ADDREF_P(value);
EX_T(opline->result.var).var.ptr = value;
@@ -5094,7 +5094,7 @@ ZEND_VM_HANDLER(105, ZEND_TICKS, ANY, ANY)
if (++EG(ticks_count)>=opline->extended_value) {
EG(ticks_count)=0;
if (zend_ticks_function) {
zend_ticks_function(opline->extended_value);
zend_ticks_function(opline->extended_value TSRMLS_CC);
}
}
CHECK_EXCEPTION();
@@ -5659,4 +5659,24 @@ ZEND_VM_HANDLER(163, ZEND_FAST_RET, ANY, ANY)
}
}
ZEND_VM_HANDLER(166, ZEND_POW, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
{
USE_OPLINE
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
GET_OP1_ZVAL_PTR(BP_VAR_R),
GET_OP2_ZVAL_PTR(BP_VAR_R) TSRMLS_CC);
FREE_OP1();
FREE_OP2();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
ZEND_VM_HANDLER(167, ZEND_ASSIGN_POW, VAR|UNUSED|CV, CONST|TMP|VAR|UNUSED|CV)
{
ZEND_VM_DISPATCH_TO_HELPER_EX(zend_binary_assign_op_helper, binary_op,pow_function);
}
ZEND_VM_EXPORT_HELPER(zend_do_fcall, zend_do_fcall_common_helper)
+422 -57
View File
@@ -1107,7 +1107,7 @@ static int ZEND_FASTCALL ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (++EG(ticks_count)>=opline->extended_value) {
EG(ticks_count)=0;
if (zend_ticks_function) {
zend_ticks_function(opline->extended_value);
zend_ticks_function(opline->extended_value TSRMLS_CC);
}
}
CHECK_EXCEPTION();
@@ -2416,7 +2416,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2446,7 +2446,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2476,7 +2476,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2510,7 +2510,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2541,7 +2541,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
if (IS_CONST == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -2769,7 +2769,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(opline->op1.zv));
ZVAL_BOOL(retval, i_zend_is_true(opline->op1.zv TSRMLS_CC));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -3226,7 +3226,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
SAVE_OPLINE();
value = opline->op1.zv;
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
if (!0) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
@@ -3251,7 +3251,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLE
SAVE_OPLINE();
value = opline->op1.zv;
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
if (IS_CONST == IS_VAR || IS_CONST == IS_CV) {
Z_ADDREF_P(value);
EX_T(opline->result.var).var.ptr = value;
@@ -4282,7 +4282,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_CONST_HANDLER(ZEND_O
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -4492,6 +4492,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLE
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -5179,6 +5194,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -6021,7 +6051,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPC
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -6192,6 +6222,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int type, ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -6726,7 +6771,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -7660,6 +7705,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_A
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
opline->op1.zv,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -7726,7 +7786,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -7756,7 +7816,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -7786,7 +7846,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -7820,7 +7880,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -7851,7 +7911,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (IS_TMP_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
zval_dtor(free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -8067,7 +8127,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)));
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
@@ -8554,7 +8614,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
SAVE_OPLINE();
value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
if (!1) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
@@ -8580,7 +8640,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_
SAVE_OPLINE();
value = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) {
Z_ADDREF_P(value);
EX_T(opline->result.var).var.ptr = value;
@@ -9539,7 +9599,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -9709,6 +9769,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -10398,6 +10473,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -11242,7 +11332,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -11413,6 +11503,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP_UNUSED(int type, ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -11822,7 +11927,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -12678,6 +12783,21 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -12924,7 +13044,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -12954,7 +13074,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -12984,7 +13104,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -13018,7 +13138,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -13049,7 +13169,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (IS_VAR == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -13370,7 +13490,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)));
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC));
zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
@@ -13969,7 +14089,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
SAVE_OPLINE();
value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
if (!0) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
@@ -13995,7 +14115,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
SAVE_OPLINE();
value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
Z_ADDREF_P(value);
EX_T(opline->result.var).var.ptr = value;
@@ -16257,7 +16377,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -16329,7 +16449,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -16575,6 +16695,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_VAR_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -18399,7 +18539,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -18645,6 +18785,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_VAR_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -20777,7 +20937,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -20849,7 +21009,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -21096,6 +21256,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1, free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_VAR_VAR(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -22051,7 +22231,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -22243,6 +22423,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_VAR_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -24116,7 +24301,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -24362,6 +24547,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op1;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_VAR_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -25611,7 +25816,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -25854,6 +26059,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDL
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_UNUSED_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMP(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -26920,7 +27130,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -27163,6 +27373,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_UNUSED_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -28229,7 +28444,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -28473,6 +28688,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_UNUSED_VAR(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -28897,6 +29117,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HAND
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -29960,7 +30185,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -30203,6 +30428,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_UNUSED_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -30444,7 +30674,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -30474,7 +30704,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
ret = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -30504,7 +30734,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -30538,7 +30768,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -30569,7 +30799,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (IS_CV == IS_TMP_VAR && EXPECTED(Z_TYPE_P(val) == IS_BOOL)) {
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
retval = i_zend_is_true(val TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
@@ -30874,7 +31104,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC)));
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC) TSRMLS_CC));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -31331,7 +31561,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
value = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
ZVAL_COPY_VALUE(&EX_T(opline->result.var).tmp_var, value);
if (!0) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
@@ -31356,7 +31586,7 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_A
SAVE_OPLINE();
value = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
if (i_zend_is_true(value)) {
if (i_zend_is_true(value TSRMLS_CC)) {
if (IS_CV == IS_VAR || IS_CV == IS_CV) {
Z_ADDREF_P(value);
EX_T(opline->result.var).var.ptr = value;
@@ -33384,7 +33614,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCO
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -33456,7 +33686,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -33699,6 +33929,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_CV_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -35387,7 +35637,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -35630,6 +35880,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_CV_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -37625,7 +37895,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -37697,7 +37967,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -37941,6 +38211,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
zend_free_op free_op2;
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_CV_VAR(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_UNUSED(int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC), ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -38769,7 +39059,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 1);
} else {
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, 0);
@@ -38939,6 +39229,11 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_CV_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
@@ -40675,7 +40970,7 @@ num_index_prop:
result = isset;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
if (!isset || !i_zend_is_true(*value)) {
if (!isset || !i_zend_is_true(*value TSRMLS_CC)) {
result = 0;
} else {
result = 1;
@@ -40918,6 +41213,26 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
ZEND_VM_RETURN();
}
static int ZEND_FASTCALL ZEND_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
SAVE_OPLINE();
pow_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
return zend_binary_assign_op_helper_SPEC_CV_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
static int ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type);
@@ -45078,6 +45393,56 @@ void zend_init_opcodes_handlers(void)
ZEND_SEND_UNPACK_SPEC_HANDLER,
ZEND_SEND_UNPACK_SPEC_HANDLER,
ZEND_SEND_UNPACK_SPEC_HANDLER,
ZEND_POW_SPEC_CONST_CONST_HANDLER,
ZEND_POW_SPEC_CONST_TMP_HANDLER,
ZEND_POW_SPEC_CONST_VAR_HANDLER,
ZEND_NULL_HANDLER,
ZEND_POW_SPEC_CONST_CV_HANDLER,
ZEND_POW_SPEC_TMP_CONST_HANDLER,
ZEND_POW_SPEC_TMP_TMP_HANDLER,
ZEND_POW_SPEC_TMP_VAR_HANDLER,
ZEND_NULL_HANDLER,
ZEND_POW_SPEC_TMP_CV_HANDLER,
ZEND_POW_SPEC_VAR_CONST_HANDLER,
ZEND_POW_SPEC_VAR_TMP_HANDLER,
ZEND_POW_SPEC_VAR_VAR_HANDLER,
ZEND_NULL_HANDLER,
ZEND_POW_SPEC_VAR_CV_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_POW_SPEC_CV_CONST_HANDLER,
ZEND_POW_SPEC_CV_TMP_HANDLER,
ZEND_POW_SPEC_CV_VAR_HANDLER,
ZEND_NULL_HANDLER,
ZEND_POW_SPEC_CV_CV_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_ASSIGN_POW_SPEC_VAR_CONST_HANDLER,
ZEND_ASSIGN_POW_SPEC_VAR_TMP_HANDLER,
ZEND_ASSIGN_POW_SPEC_VAR_VAR_HANDLER,
ZEND_ASSIGN_POW_SPEC_VAR_UNUSED_HANDLER,
ZEND_ASSIGN_POW_SPEC_VAR_CV_HANDLER,
ZEND_ASSIGN_POW_SPEC_UNUSED_CONST_HANDLER,
ZEND_ASSIGN_POW_SPEC_UNUSED_TMP_HANDLER,
ZEND_ASSIGN_POW_SPEC_UNUSED_VAR_HANDLER,
ZEND_ASSIGN_POW_SPEC_UNUSED_UNUSED_HANDLER,
ZEND_ASSIGN_POW_SPEC_UNUSED_CV_HANDLER,
ZEND_ASSIGN_POW_SPEC_CV_CONST_HANDLER,
ZEND_ASSIGN_POW_SPEC_CV_TMP_HANDLER,
ZEND_ASSIGN_POW_SPEC_CV_VAR_HANDLER,
ZEND_ASSIGN_POW_SPEC_CV_UNUSED_HANDLER,
ZEND_ASSIGN_POW_SPEC_CV_CV_HANDLER,
ZEND_NULL_HANDLER
};
zend_opcode_handlers = (opcode_handler_t*)labels;
+3 -1
View File
@@ -21,7 +21,7 @@
#include <stdio.h>
#include <zend.h>
const char *zend_vm_opcodes_map[166] = {
const char *zend_vm_opcodes_map[168] = {
"ZEND_NOP",
"ZEND_ADD",
"ZEND_SUB",
@@ -188,6 +188,8 @@ const char *zend_vm_opcodes_map[166] = {
"ZEND_FAST_RET",
"ZEND_RECV_VARIADIC",
"ZEND_SEND_UNPACK",
"ZEND_POW",
"ZEND_ASSIGN_POW",
};
ZEND_API const char* zend_get_opcode_name(zend_uchar opcode) {
+2
View File
@@ -171,5 +171,7 @@ ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);
#define ZEND_FAST_RET 163
#define ZEND_RECV_VARIADIC 164
#define ZEND_SEND_UNPACK 165
#define ZEND_POW 166
#define ZEND_ASSIGN_POW 167
#endif
+1 -1
View File
@@ -118,7 +118,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
])
PHP_MAJOR_VERSION=5
PHP_MINOR_VERSION=6
PHP_MINOR_VERSION=7
PHP_RELEASE_VERSION=0
PHP_EXTRA_VERSION="-dev"
PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2013 The PHP Group |
| Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2013 The PHP Group |
| Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+3 -2
View File
@@ -124,14 +124,15 @@ DBA_EXISTS_FUNC(inifile)
DBA_DELETE_FUNC(inifile)
{
int res;
zend_bool found = 0;
INIFILE_DATA;
INIFILE_GKEY;
res = inifile_delete(dba, &ini_key TSRMLS_CC);
res = inifile_delete_ex(dba, &ini_key, &found TSRMLS_CC);
INIFILE_DONE;
return (res == -1 ? FAILURE : SUCCESS);
return (res == -1 || !found ? FAILURE : SUCCESS);
}
DBA_FIRSTKEY_FUNC(inifile)
+30 -11
View File
@@ -402,7 +402,7 @@ static int inifile_copy_to(inifile *dba, size_t pos_start, size_t pos_end, inifi
return FAILURE;
}
php_stream_seek(dba->fp, pos_start, SEEK_SET);
if (!php_stream_copy_to_stream_ex(dba->fp, fp, pos_end - pos_start, NULL)) {
if (SUCCESS != php_stream_copy_to_stream_ex(dba->fp, fp, pos_end - pos_start, NULL)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not copy group [%zu - %zu] to temporary stream", pos_start, pos_end);
return FAILURE;
}
@@ -413,7 +413,7 @@ static int inifile_copy_to(inifile *dba, size_t pos_start, size_t pos_end, inifi
/* {{{ inifile_filter
* copy from to dba while ignoring key name (group must equal)
*/
static int inifile_filter(inifile *dba, inifile *from, const key_type *key TSRMLS_DC)
static int inifile_filter(inifile *dba, inifile *from, const key_type *key, zend_bool *found TSRMLS_DC)
{
size_t pos_start = 0, pos_next = 0, pos_curr;
int ret = SUCCESS;
@@ -424,10 +424,13 @@ static int inifile_filter(inifile *dba, inifile *from, const key_type *key TSRML
while(inifile_read(from, &ln TSRMLS_CC)) {
switch(inifile_key_cmp(&ln.key, key TSRMLS_CC)) {
case 0:
if (found) {
*found = (zend_bool) 1;
}
pos_curr = php_stream_tell(from->fp);
if (pos_start != pos_next) {
php_stream_seek(from->fp, pos_start, SEEK_SET);
if (!php_stream_copy_to_stream_ex(from->fp, dba->fp, pos_next - pos_start, NULL)) {
if (SUCCESS != php_stream_copy_to_stream_ex(from->fp, dba->fp, pos_next - pos_start, NULL)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not copy [%zu - %zu] from temporary stream", pos_next, pos_start);
ret = FAILURE;
}
@@ -446,7 +449,7 @@ static int inifile_filter(inifile *dba, inifile *from, const key_type *key TSRML
}
if (pos_start != pos_next) {
php_stream_seek(from->fp, pos_start, SEEK_SET);
if (!php_stream_copy_to_stream_ex(from->fp, dba->fp, pos_next - pos_start, NULL)) {
if (SUCCESS != php_stream_copy_to_stream_ex(from->fp, dba->fp, pos_next - pos_start, NULL)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not copy [%zu - %zu] from temporary stream", pos_next, pos_start);
ret = FAILURE;
}
@@ -458,7 +461,7 @@ static int inifile_filter(inifile *dba, inifile *from, const key_type *key TSRML
/* {{{ inifile_delete_replace_append
*/
static int inifile_delete_replace_append(inifile *dba, const key_type *key, const val_type *value, int append TSRMLS_DC)
static int inifile_delete_replace_append(inifile *dba, const key_type *key, const val_type *value, int append, zend_bool *found TSRMLS_DC)
{
size_t pos_grp_start=0, pos_grp_next;
inifile *ini_tmp = NULL;
@@ -497,7 +500,7 @@ static int inifile_delete_replace_append(inifile *dba, const key_type *key, cons
php_stream_seek(dba->fp, 0, SEEK_END);
if (pos_grp_next != (size_t)php_stream_tell(dba->fp)) {
php_stream_seek(dba->fp, pos_grp_next, SEEK_SET);
if (!php_stream_copy_to_stream_ex(dba->fp, fp_tmp, PHP_STREAM_COPY_ALL, NULL)) {
if (SUCCESS != php_stream_copy_to_stream_ex(dba->fp, fp_tmp, PHP_STREAM_COPY_ALL, NULL)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not copy remainder to temporary stream");
ret = FAILURE;
}
@@ -516,7 +519,7 @@ static int inifile_delete_replace_append(inifile *dba, const key_type *key, cons
if (key->name && strlen(key->name)) {
/* 6 */
if (!append && ini_tmp) {
ret = inifile_filter(dba, ini_tmp, key TSRMLS_CC);
ret = inifile_filter(dba, ini_tmp, key, found TSRMLS_CC);
}
/* 7 */
@@ -538,7 +541,7 @@ static int inifile_delete_replace_append(inifile *dba, const key_type *key, cons
if (fp_tmp && php_stream_tell(fp_tmp)) {
php_stream_seek(fp_tmp, 0, SEEK_SET);
php_stream_seek(dba->fp, 0, SEEK_END);
if (!php_stream_copy_to_stream_ex(fp_tmp, dba->fp, PHP_STREAM_COPY_ALL, NULL)) {
if (SUCCESS != php_stream_copy_to_stream_ex(fp_tmp, dba->fp, PHP_STREAM_COPY_ALL, NULL)) {
php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Could not copy from temporary stream - ini file truncated");
ret = FAILURE;
}
@@ -563,7 +566,15 @@ static int inifile_delete_replace_append(inifile *dba, const key_type *key, cons
*/
int inifile_delete(inifile *dba, const key_type *key TSRMLS_DC)
{
return inifile_delete_replace_append(dba, key, NULL, 0 TSRMLS_CC);
return inifile_delete_replace_append(dba, key, NULL, 0, NULL TSRMLS_CC);
}
/* }}} */
/* {{{ inifile_delete_ex
*/
int inifile_delete_ex(inifile *dba, const key_type *key, zend_bool *found TSRMLS_DC)
{
return inifile_delete_replace_append(dba, key, NULL, 0, found TSRMLS_CC);
}
/* }}} */
@@ -571,7 +582,15 @@ int inifile_delete(inifile *dba, const key_type *key TSRMLS_DC)
*/
int inifile_replace(inifile *dba, const key_type *key, const val_type *value TSRMLS_DC)
{
return inifile_delete_replace_append(dba, key, value, 0 TSRMLS_CC);
return inifile_delete_replace_append(dba, key, value, 0, NULL TSRMLS_CC);
}
/* }}} */
/* {{{ inifile_replace_ex
*/
int inifile_replace_ex(inifile *dba, const key_type *key, const val_type *value, zend_bool *found TSRMLS_DC)
{
return inifile_delete_replace_append(dba, key, value, 0, found TSRMLS_CC);
}
/* }}} */
@@ -579,7 +598,7 @@ int inifile_replace(inifile *dba, const key_type *key, const val_type *value TSR
*/
int inifile_append(inifile *dba, const key_type *key, const val_type *value TSRMLS_DC)
{
return inifile_delete_replace_append(dba, key, value, 1 TSRMLS_CC);
return inifile_delete_replace_append(dba, key, value, 1, NULL TSRMLS_CC);
}
/* }}} */
+2
View File
@@ -49,7 +49,9 @@ val_type inifile_fetch(inifile *dba, const key_type *key, int skip TSRMLS_DC);
int inifile_firstkey(inifile *dba TSRMLS_DC);
int inifile_nextkey(inifile *dba TSRMLS_DC);
int inifile_delete(inifile *dba, const key_type *key TSRMLS_DC);
int inifile_delete_ex(inifile *dba, const key_type *key, zend_bool *found TSRMLS_DC);
int inifile_replace(inifile *dba, const key_type *key, const val_type *val TSRMLS_DC);
int inifile_replace_ex(inifile *dba, const key_type *key, const val_type *val, zend_bool *found TSRMLS_DC);
int inifile_append(inifile *dba, const key_type *key, const val_type *val TSRMLS_DC);
char *inifile_version();
+43
View File
@@ -0,0 +1,43 @@
--TEST--
Bug #62490 (dba_delete returns true on missing item (inifile))
--SKIPIF--
<?php
$handler = "inifile";
include "skipif.inc";
?>
--FILE--
<?php
$handler = "inifile";
include "test.inc";
$dba = dba_open($db_filename, "n", $handler)
or die;
for ($i = 0; $i < 3; ++$i) {
echo "insert $i:";
var_dump(dba_insert("a", $i, $dba));
}
echo "exists:";
var_dump(dba_exists("a", $dba));
echo "delete:";
var_dump(dba_delete("a", $dba));
echo "exists:";
var_dump(dba_exists("a", $dba));
echo "delete:";
var_dump(dba_delete("a", $dba));
?>
===DONE===
--CLEAN--
<?php
include "clean.inc";
?>
--EXPECT--
insert 0:bool(true)
insert 1:bool(true)
insert 2:bool(true)
exists:bool(true)
delete:bool(true)
exists:bool(false)
delete:bool(false)
===DONE===
-2
View File
@@ -39,8 +39,6 @@ require(dirname(__FILE__) .'/clean.inc');
database handler: db4
int(14)
Notice: dba_open(): %stest0.dbm: unexpected file type or format in %sdba_db4_003.php on line %d
Warning: dba_open(%stest0.dbm,c): Driver initialization failed for handler: db4: Invalid argument in %sdba_db4_003.php on line %d
Error creating %stest0.dbm
Dummy contents
-2
View File
@@ -35,7 +35,5 @@ require(dirname(__FILE__) .'/clean.inc');
database handler: db4
int(14)
Notice: dba_popen(): %stest0.dbm: unexpected file type or format in %sdba_db4_007.php on line %d
Warning: dba_popen(%stest0.dbm,c): Driver initialization failed for handler: db4: Invalid argument in %sdba_db4_007.php on line %d
Error creating %stest0.dbm
-38
View File
@@ -1,38 +0,0 @@
--TEST--
DBA DB4 magic_quotes_runtime Test
--SKIPIF--
<?php
$handler = "db4";
require_once(dirname(__FILE__) .'/skipif.inc');
die("info $HND handler used");
?>
--FILE--
<?php
$handler = "db4";
require_once(dirname(__FILE__) .'/test.inc');
echo "database handler: $handler\n";
if (($db_file=dba_open($db_file, "n", $handler))!==FALSE) {
ini_set('magic_quotes_runtime', 0);
dba_insert("key1", '"', $db_file);
var_dump(dba_fetch("key1", $db_file));
ini_set('magic_quotes_runtime', 1);
var_dump(dba_fetch("key1", $db_file));
dba_replace("key1", '\"', $db_file);
var_dump(dba_fetch("key1", $db_file));
ini_set('magic_quotes_runtime', 0);
var_dump(dba_fetch("key1", $db_file));
dba_close($db_file);
} else {
echo "Error creating database\n";
}
?>
--CLEAN--
<?php
require(dirname(__FILE__) .'/clean.inc');
?>
--EXPECTF--
database handler: db4
string(1) """
string(2) "\""
string(2) "\""
string(1) """
+1 -1
View File
@@ -82,7 +82,7 @@ do {
dba_close($dba_reader);
}
if (($db_file = dba_popen($db_filename, 'r'.($lock_flag==''?'':'-'), $handler))!==FALSE) {
if ($handler == 'dbm') {
if ($handler == 'dbm' || $handler == "tcadb") {
dba_close($db_file);
}
}
+6 -2
View File
@@ -12,6 +12,10 @@ DBA INIFILE handler test
require_once dirname(__FILE__) .'/dba_handler.inc';
?>
===DONE===
--CLEAN--
<?php
require(dirname(__FILE__) .'/clean.inc');
?>
--EXPECT--
database handler: inifile
3NYNYY
@@ -19,7 +23,7 @@ Content String 2
Content 2 replaced
Read during write: not allowed
"key number 6" written
Failed to write "key number 6" 2nd time
"key number 6" written 2nd time
Content 2 replaced 2nd time
The 6th value
array(3) {
@@ -36,7 +40,7 @@ Content String 2
Content 2 replaced
Read during write: not allowed
"key number 6" written
Failed to write "key number 6" 2nd time
"key number 6" written 2nd time
Content 2 replaced 2nd time
The 6th value
array(3) {
+6
View File
@@ -16,6 +16,12 @@ DBA TCADB handler test
require_once dirname(__FILE__) .'/dba_handler.inc';
?>
===DONE===
--CLEAN--
<?php
$db_filename = $db_file = dirname(__FILE__) .'/test0.tch';
@unlink($db_filename);
@unlink($db_filename.'.lck');
?>
--EXPECT--
database handler: tcadb
3NYNYY
+1 -1
View File
@@ -448,7 +448,7 @@ static int dom_property_exists(zval *object, zval *member, int check_empty, cons
Z_SET_REFCOUNT_P(tmp, 1);
Z_UNSET_ISREF_P(tmp);
if (check_empty == 1) {
retval = zend_is_true(tmp);
retval = zend_is_true(tmp TSRMLS_CC);
} else if (check_empty == 0) {
retval = (Z_TYPE_P(tmp) != IS_NULL);
}
+9 -1
View File
@@ -1050,7 +1050,15 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, double ptsi
}
/* transform glyph image */
FT_Get_Glyph(slot, &image);
if (FT_Get_Glyph(slot, &image)) {
if (tmpstr) {
gdFree(tmpstr);
}
gdCacheDelete(tc_cache);
gdMutexUnlock(gdFontCacheMutex);
return "Problem loading glyph";
}
if (brect) { /* only if need brect */
FT_Glyph_Get_CBox(image, ft_glyph_bbox_gridfit, &glyph_bbox);
glyph_bbox.xMin += penf.x;
+3
View File
@@ -532,6 +532,9 @@ static int gmp_do_operation(zend_uchar opcode, zval *result, zval *op1, zval *op
DO_BINARY_UI_OP(mpz_sub);
case ZEND_MUL:
DO_BINARY_UI_OP(mpz_mul);
case ZEND_POW:
shift_operator_helper(mpz_pow_ui, result, op1, op2 TSRMLS_CC);
return SUCCESS;
case ZEND_DIV:
DO_BINARY_UI_OP_EX(mpz_tdiv_q, mpz_tdiv_q_ui, 1);
case ZEND_MOD:
+8 -1
View File
@@ -83,6 +83,10 @@ var_dump(--$a);
var_dump($a--);
var_dump($a);
$x = gmp_init(3);
$y = gmp_init(2);
var_dump($x ** $y);
?>
--EXPECTF--
object(GMP)#%d (1) {
@@ -256,4 +260,7 @@ object(GMP)#%d (1) {
["num"]=>
string(2) "42"
}
object(GMP)#%d (1) {
["num"]=>
string(1) "9"
}
+2 -2
View File
@@ -190,10 +190,10 @@ static int json_determine_array_type(zval **val TSRMLS_DC) /* {{{ */
}
if (i == HASH_KEY_IS_STRING) {
return 1;
return PHP_JSON_OUTPUT_OBJECT;
} else {
if (index != idx) {
return 1;
return PHP_JSON_OUTPUT_OBJECT;
}
}
idx++;
@@ -0,0 +1,41 @@
--TEST--
libxml_disable_entity_loader()
--SKIPIF--
<?php if (!extension_loaded('libxml') || !extension_loaded('dom') || defined('PHP_WINDOWS_VERSION_MAJOR')) die('skip'); ?>
--FILE--
<?php
$xml = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [<!ENTITY xxe SYSTEM "XXE_URI">]>
<foo>&xxe;</foo>
EOT;
$xml = str_replace('XXE_URI', __DIR__ . '/libxml_disable_entity_loader_payload.txt', $xml);
function parseXML($xml) {
$doc = new DOMDocument();
$doc->resolveExternals = true;
$doc->substituteEntities = true;
$doc->validateOnParse = false;
$doc->loadXML($xml, 0);
return $doc->saveXML();
}
var_dump(strpos(parseXML($xml), 'SECRET_DATA') !== false);
var_dump(libxml_disable_entity_loader(true));
var_dump(strpos(parseXML($xml), 'SECRET_DATA') === false);
echo "Done\n";
?>
--EXPECTF--
bool(true)
bool(false)
Warning: DOMDocument::loadXML(): I/O warning : failed to load external entity "%s" in %s on line %d
Warning: DOMDocument::loadXML(): Failure to process entity xxe in Entity, line: %d in %s on line %d
Warning: DOMDocument::loadXML(): Entity 'xxe' not defined in Entity, line: %d in %s on line %d
bool(true)
Done
@@ -0,0 +1 @@
SECRET_DATA
+8
View File
@@ -900,7 +900,11 @@ MYSQLND_METHOD(mysqlnd_net, enable_ssl)(MYSQLND_NET * const net TSRMLS_DC)
ZVAL_STRING(&cipher_zval, net->data->options.ssl_cipher, 0);
php_stream_context_set_option(context, "ssl", "ciphers", &cipher_zval);
}
#if PHP_API_VERSION >= 20131106
php_stream_context_set(net_stream, context TSRMLS_CC);
#else
php_stream_context_set(net_stream, context);
#endif
if (php_stream_xport_crypto_setup(net_stream, STREAM_CRYPTO_METHOD_TLS_CLIENT, NULL TSRMLS_CC) < 0 ||
php_stream_xport_crypto_enable(net_stream, 1 TSRMLS_CC) < 0)
{
@@ -916,7 +920,11 @@ MYSQLND_METHOD(mysqlnd_net, enable_ssl)(MYSQLND_NET * const net TSRMLS_DC)
of the context, which means usage of already freed memory, bad. Actually we don't need this
context anymore after we have enabled SSL on the connection. Thus it is very simple, we remove it.
*/
#if PHP_API_VERSION >= 20131106
php_stream_context_set(net_stream, NULL TSRMLS_CC);
#else
php_stream_context_set(net_stream, NULL);
#endif
if (net->data->options.timeout_read) {
struct timeval tv;
+1
View File
@@ -38,6 +38,7 @@ const char * const mysqlnd_stmt_not_prepared = "Statement not prepared";
/* Exported by mysqlnd_ps_codec.c */
enum_func_status mysqlnd_stmt_execute_generate_request(MYSQLND_STMT * const s, zend_uchar ** request, size_t *request_len, zend_bool * free_buffer TSRMLS_DC);
enum_func_status mysqlnd_stmt_execute_batch_generate_request(MYSQLND_STMT * const s, zend_uchar ** request, size_t *request_len, zend_bool * free_buffer TSRMLS_DC);
enum_func_status mysqlnd_stmt_fetch_row_buffered(MYSQLND_RES *result, void *param,
unsigned int flags,
+14
View File
@@ -1466,7 +1466,12 @@ static void zend_jmp_optimization(zend_code_block *block, zend_op_array *op_arra
case ZEND_JMPNZ:
/* constant conditional JMPs */
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op) TSRMLS_CC);
#else
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op));
#endif
if (last_op->opcode == ZEND_JMPZ) {
should_jmp = !should_jmp;
}
@@ -1609,7 +1614,12 @@ next_target:
case ZEND_JMPZ_EX:
/* constant conditional JMPs */
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op) TSRMLS_CC);
#else
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op));
#endif
if (last_op->opcode == ZEND_JMPZ_EX) {
should_jmp = !should_jmp;
}
@@ -1730,7 +1740,11 @@ next_target_ex:
}
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
if (!zend_is_true(&ZEND_OP1_LITERAL(last_op) TSRMLS_CC)) {
#else
if (!zend_is_true(&ZEND_OP1_LITERAL(last_op))) {
#endif
/* JMPZNZ(false,L1,L2) -> JMP(L1) */
zend_code_block *todel;
+12 -1
View File
@@ -89,7 +89,11 @@ if (ZEND_OPTIMIZER_PASS_2 & OPTIMIZATION_LEVEL) {
/* convert Ti = JMPZ_EX(C, L) => Ti = QM_ASSIGN(C)
in case we know it wouldn't jump */
} else if (ZEND_OP1_TYPE(opline) == IS_CONST) {
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(opline) TSRMLS_CC);
#else
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(opline));
#endif
if (opline->opcode == ZEND_JMPZ_EX) {
should_jmp = !should_jmp;
}
@@ -103,7 +107,11 @@ if (ZEND_OPTIMIZER_PASS_2 & OPTIMIZATION_LEVEL) {
case ZEND_JMPZ:
case ZEND_JMPNZ:
if (ZEND_OP1_TYPE(opline) == IS_CONST) {
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(opline) TSRMLS_CC);
#else
int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(opline));
#endif
if (opline->opcode == ZEND_JMPZ) {
should_jmp = !should_jmp;
@@ -139,8 +147,11 @@ if (ZEND_OPTIMIZER_PASS_2 & OPTIMIZATION_LEVEL) {
case ZEND_JMPZNZ:
if (ZEND_OP1_TYPE(opline) == IS_CONST) {
int opline_num;
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
if (zend_is_true(&ZEND_OP1_LITERAL(opline) TSRMLS_CC)) {
#else
if (zend_is_true(&ZEND_OP1_LITERAL(opline))) {
#endif
opline_num = opline->extended_value; /* JMPNZ */
} else {
opline_num = ZEND_OP2(opline).opline_num; /* JMPZ */
+4
View File
@@ -2550,7 +2550,11 @@ static int accel_startup(zend_extension *extension)
_setmaxstdio(2048); /* The default configuration is limited to 512 stdio files */
#endif
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
if (start_accel_module(TSRMLS_C) == FAILURE) {
#else
if (start_accel_module() == FAILURE) {
#endif
accel_startup_ok = 0;
zend_error(E_WARNING, ACCELERATOR_PRODUCT_NAME ": module registration failed!");
return FAILURE;
+1
View File
@@ -92,6 +92,7 @@
#define PHP_5_3_X_API_NO 220090626
#define PHP_5_4_X_API_NO 220100525
#define PHP_5_5_X_API_NO 220121212
#define PHP_5_6_X_API_NO 220131106
/*** file locking ***/
#ifndef ZEND_WIN32
+7
View File
@@ -474,10 +474,17 @@ static zend_module_entry accel_module_entry = {
STANDARD_MODULE_PROPERTIES
};
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
int start_accel_module(TSRMLS_D)
{
return zend_startup_module(&accel_module_entry TSRMLS_CC);
}
#else
int start_accel_module(void)
{
return zend_startup_module(&accel_module_entry);
}
#endif
/* {{{ proto array accelerator_get_scripts()
Get the scripts which are accelerated by ZendAccelerator */
+5
View File
@@ -22,7 +22,12 @@
#ifndef ZEND_ACCELERATOR_MODULE_H
#define ZEND_ACCELERATOR_MODULE_H
#if ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
int start_accel_module(TSRMLS_D);
#else
int start_accel_module(void);
#endif
void zend_accel_override_file_functions(TSRMLS_D);
#endif /* _ZEND_ACCELERATOR_MODULE_H */
+5 -5
View File
@@ -407,7 +407,7 @@ static inline int php_openssl_setup_crypto(php_stream *stream,
if (stream->context && SUCCESS == php_stream_context_get_option(
stream->context, "ssl", "no_ticket", &val) &&
zend_is_true(*val)
zend_is_true(*val TSRMLS_CC)
) {
SSL_CTX_set_options(sslsock->ctx, SSL_OP_NO_TICKET);
}
@@ -420,7 +420,7 @@ static inline int php_openssl_setup_crypto(php_stream *stream,
if (stream->context && SUCCESS == php_stream_context_get_option(
stream->context, "ssl", "disable_compression", &val) &&
zend_is_true(*val)
zend_is_true(*val TSRMLS_CC)
) {
SSL_CTX_set_options(sslsock->ctx, SSL_OP_NO_COMPRESSION);
}
@@ -471,7 +471,7 @@ static inline int php_openssl_enable_crypto(php_stream *stream,
if (sslsock->is_client
&& (php_stream_context_get_option(stream->context, "ssl", "SNI_enabled", &val) == FAILURE
|| zend_is_true(*val))
|| zend_is_true(*val TSRMLS_CC))
) {
if (php_stream_context_get_option(stream->context, "ssl", "SNI_server_name", &val) == SUCCESS) {
convert_to_string_ex(val);
@@ -578,7 +578,7 @@ static inline int php_openssl_enable_crypto(php_stream *stream,
if (SUCCESS == php_stream_context_get_option(
stream->context, "ssl",
"capture_peer_cert", &val) &&
zend_is_true(*val)) {
zend_is_true(*val TSRMLS_CC)) {
MAKE_STD_ZVAL(zcert);
ZVAL_RESOURCE(zcert, zend_list_insert(peer_cert,
php_openssl_get_x509_list_id() TSRMLS_CC));
@@ -592,7 +592,7 @@ static inline int php_openssl_enable_crypto(php_stream *stream,
if (SUCCESS == php_stream_context_get_option(
stream->context, "ssl",
"capture_peer_cert_chain", &val) &&
zend_is_true(*val)) {
zend_is_true(*val TSRMLS_CC)) {
zval *arr;
STACK_OF(X509) *chain;
+1 -1
View File
@@ -499,7 +499,7 @@ PHP_MINIT_FUNCTION(pcntl)
{
php_register_signal_constants(INIT_FUNC_ARGS_PASSTHRU);
php_pcntl_register_errno_constants(INIT_FUNC_ARGS_PASSTHRU);
php_add_tick_function(pcntl_signal_dispatch);
php_add_tick_function(pcntl_signal_dispatch TSRMLS_CC);
return SUCCESS;
}
+1 -1
View File
@@ -1189,7 +1189,7 @@ static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNode
xmlAddChild(parent, ret);
FIND_ZVAL_NULL(data, ret, style);
if (zend_is_true(data)) {
if (zend_is_true(data TSRMLS_CC)) {
xmlNodeSetContent(ret, BAD_CAST("true"));
} else {
xmlNodeSetContent(ret, BAD_CAST("false"));
+3 -3
View File
@@ -599,7 +599,7 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o
SEPARATE_ARG_IF_REF(offset);
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_has, "offsetExists", &rv, offset);
zval_ptr_dtor(&offset);
if (rv && zend_is_true(rv)) {
if (rv && zend_is_true(rv TSRMLS_CC)) {
zval_ptr_dtor(&rv);
return 1;
}
@@ -620,7 +620,7 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o
case 2:
return 1;
default:
return zend_is_true(*tmp);
return zend_is_true(*tmp TSRMLS_CC);
}
}
}
@@ -643,7 +643,7 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o
case 2:
return 1;
default:
return zend_is_true(*tmp);
return zend_is_true(*tmp TSRMLS_CC);
}
}
return 0;
+2 -2
View File
@@ -836,7 +836,7 @@ SPL_METHOD(DirectoryIterator, seek)
int valid = 0;
zend_call_method_with_0_params(&this_ptr, Z_OBJCE_P(getThis()), &intern->u.dir.func_valid, "valid", &retval);
if (retval) {
valid = zend_is_true(retval);
valid = zend_is_true(retval TSRMLS_CC);
zval_ptr_dtor(&retval);
}
if (!valid) {
@@ -1497,7 +1497,7 @@ SPL_METHOD(RecursiveDirectoryIterator, hasChildren)
spl_filesystem_object_get_file_name(intern TSRMLS_CC);
if (!allow_links && !(intern->flags & SPL_FILE_DIR_FOLLOW_SYMLINKS)) {
php_stat(intern->file_name, intern->file_name_len, FS_IS_LINK, return_value TSRMLS_CC);
if (zend_is_true(return_value)) {
if (zend_is_true(return_value TSRMLS_CC)) {
RETURN_FALSE;
}
}
+2 -2
View File
@@ -511,7 +511,7 @@ static inline int spl_fixedarray_object_has_dimension_helper(spl_fixedarray_obje
if (!intern->array->elements[index]) {
retval = 0;
} else if (check_empty) {
if (zend_is_true(intern->array->elements[index])) {
if (zend_is_true(intern->array->elements[index] TSRMLS_CC)) {
retval = 1;
} else {
retval = 0;
@@ -540,7 +540,7 @@ static int spl_fixedarray_object_has_dimension(zval *object, zval *offset, int c
zval_ptr_dtor(&intern->retval);
MAKE_STD_ZVAL(intern->retval);
ZVAL_ZVAL(intern->retval, rv, 1, 1);
return zend_is_true(intern->retval);
return zend_is_true(intern->retval TSRMLS_CC);
}
return 0;
}
+4 -4
View File
@@ -249,7 +249,7 @@ next_step:
}
}
if (retval) {
has_children = zend_is_true(retval);
has_children = zend_is_true(retval TSRMLS_CC);
zval_ptr_dtor(&retval);
if (has_children) {
if (object->max_depth == -1 || object->max_depth > object->level) {
@@ -1774,7 +1774,7 @@ static inline void spl_filter_it_fetch(zval *zthis, spl_dual_it_object *intern T
while (spl_dual_it_fetch(intern, 1 TSRMLS_CC) == SUCCESS) {
zend_call_method_with_0_params(&zthis, intern->std.ce, NULL, "accept", &retval);
if (retval) {
if (zend_is_true(retval)) {
if (zend_is_true(retval TSRMLS_CC)) {
zval_ptr_dtor(&retval);
return;
}
@@ -2598,7 +2598,7 @@ static inline void spl_caching_it_next(spl_dual_it_object *intern TSRMLS_DC)
return;
}
} else {
if (zend_is_true(retval)) {
if (zend_is_true(retval TSRMLS_CC)) {
zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "getchildren", &zchildren);
if (EG(exception)) {
if (zchildren) {
@@ -3573,7 +3573,7 @@ static int spl_iterator_func_apply(zend_object_iterator *iter, void *puser TSRML
apply_info->count++;
zend_fcall_info_call(&apply_info->fci, &apply_info->fcc, &retval, NULL TSRMLS_CC);
if (retval) {
result = zend_is_true(retval) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_STOP;
result = zend_is_true(retval TSRMLS_CC) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_STOP;
zval_ptr_dtor(&retval);
} else {
result = ZEND_HASH_APPLY_STOP;
+2 -2
View File
@@ -4277,7 +4277,7 @@ PHP_FUNCTION(array_filter)
fci.params = args;
if (zend_call_function(&fci, &fci_cache TSRMLS_CC) == SUCCESS && retval) {
int retval_true = zend_is_true(retval);
int retval_true = zend_is_true(retval TSRMLS_CC);
zval_ptr_dtor(&retval);
if (use_type) {
@@ -4290,7 +4290,7 @@ PHP_FUNCTION(array_filter)
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An error occurred while invoking the filter callback");
return;
}
} else if (!zend_is_true(*operand)) {
} else if (!zend_is_true(*operand TSRMLS_CC)) {
continue;
}
+1 -1
View File
@@ -5751,7 +5751,7 @@ PHP_FUNCTION(register_tick_function)
zend_llist_init(BG(user_tick_functions),
sizeof(user_tick_function_entry),
(llist_dtor_func_t) user_tick_function_dtor, 0);
php_add_tick_function(run_user_tick_functions);
php_add_tick_function(run_user_tick_functions TSRMLS_CC);
}
for (i = 0; i < tick_fe.arg_count; i++) {
+3 -3
View File
@@ -163,7 +163,7 @@ static php_stream *php_ftp_fopen_connect(php_stream_wrapper *wrapper, const char
goto connect_errexit;
}
php_stream_context_set(stream, context);
php_stream_context_set(stream, context TSRMLS_CC);
php_stream_notify_info(context, PHP_STREAM_NOTIFY_CONNECT, NULL, 0);
/* Start talking to ftp server */
@@ -571,7 +571,7 @@ php_stream * php_stream_url_wrap_ftp(php_stream_wrapper *wrapper, const char *pa
goto errexit;
}
php_stream_context_set(datastream, context);
php_stream_context_set(datastream, context TSRMLS_CC);
php_stream_notify_progress_init(context, 0, file_size);
if (use_ssl_on_data && (php_stream_xport_crypto_setup(datastream,
@@ -745,7 +745,7 @@ php_stream * php_stream_ftp_opendir(php_stream_wrapper *wrapper, const char *pat
goto opendir_errexit;
}
php_stream_context_set(datastream, context);
php_stream_context_set(datastream, context TSRMLS_CC);
if (use_ssl_on_data && (php_stream_xport_crypto_setup(stream,
STREAM_CRYPTO_METHOD_SSLv23_CLIENT, NULL TSRMLS_CC) < 0 ||
+2 -2
View File
@@ -337,7 +337,7 @@ finish:
eol_detect = stream->flags & (PHP_STREAM_FLAG_DETECT_EOL | PHP_STREAM_FLAG_EOL_MAC);
stream->flags &= ~(PHP_STREAM_FLAG_DETECT_EOL | PHP_STREAM_FLAG_EOL_MAC);
php_stream_context_set(stream, context);
php_stream_context_set(stream, context TSRMLS_CC);
php_stream_notify_info(context, PHP_STREAM_NOTIFY_CONNECT, NULL, 0);
@@ -682,7 +682,7 @@ finish:
response_code = 0;
}
if (context && SUCCESS==php_stream_context_get_option(context, "http", "ignore_errors", &tmpzval)) {
ignore_errors = zend_is_true(*tmpzval);
ignore_errors = zend_is_true(*tmpzval TSRMLS_CC);
}
/* when we request only the header, don't fail even on error codes */
if ((options & STREAM_ONLY_GET_HEADERS) || ignore_errors) {
+1 -37
View File
@@ -604,43 +604,7 @@ PHP_FUNCTION(pow)
return;
}
/* make sure we're dealing with numbers */
convert_scalar_to_number(zbase TSRMLS_CC);
convert_scalar_to_number(zexp TSRMLS_CC);
/* if both base and exponent were longs, we'll try to get a long out */
if (Z_TYPE_P(zbase) == IS_LONG && Z_TYPE_P(zexp) == IS_LONG && Z_LVAL_P(zexp) >= 0) {
long l1 = 1, l2 = Z_LVAL_P(zbase), i = Z_LVAL_P(zexp);
if (i == 0) {
RETURN_LONG(1L);
} else if (l2 == 0) {
RETURN_LONG(0);
}
/* calculate pow(long,long) in O(log exp) operations, bail if overflow */
while (i >= 1) {
long overflow;
double dval = 0.0;
if (i % 2) {
--i;
ZEND_SIGNED_MULTIPLY_LONG(l1,l2,l1,dval,overflow);
if (overflow) RETURN_DOUBLE(dval * pow(l2,i));
} else {
i /= 2;
ZEND_SIGNED_MULTIPLY_LONG(l2,l2,l2,dval,overflow);
if (overflow) RETURN_DOUBLE((double)l1 * pow(dval,i));
}
if (i == 0) {
RETURN_LONG(l1);
}
}
}
convert_to_double(zbase);
convert_to_double(zexp);
RETURN_DOUBLE(pow(Z_DVAL_P(zbase), Z_DVAL_P(zexp)));
pow_function(return_value, zbase, zexp TSRMLS_CC);
}
/* }}} */
+22
View File
@@ -0,0 +1,22 @@
--TEST--
Various pow() tests
--FILE--
<?php // $Id$
$x = 2;
$x **= 3;
$tests = <<<TESTS
-3 ** 2 === -9
(-3) **2 === 9
2 ** 3 ** 2 === 512
(2 ** 3) ** 2 === 64
$x === 8
TESTS;
echo "On failure, please mail result to php-dev@lists.php.net\n";
include(dirname(__FILE__) . '/../../../../tests/quicktester.inc');
--EXPECT--
On failure, please mail result to php-dev@lists.php.net
OK
+1 -1
View File
@@ -149,7 +149,7 @@ int(0)
int(0)
-- Iteration 19 --
float(0)
int(0)
-- Iteration 20 --
int(0)
@@ -149,7 +149,7 @@ int(0)
int(0)
-- Iteration 19 --
float(0)
int(0)
-- Iteration 20 --
int(0)
@@ -173,4 +173,4 @@ int(0)
-- Iteration 26 --
%s
===Done===
===Done===
+1 -1
View File
@@ -186,7 +186,7 @@ PHP_FUNCTION(boolval)
return;
}
RETURN_BOOL(zend_is_true(*val));
RETURN_BOOL(zend_is_true(*val TSRMLS_CC));
}
/* }}} */
+10 -10
View File
@@ -17,7 +17,7 @@ array(14) {
[0]=>
array(3) {
[0]=>
int(374)
int(376)
[1]=>
string(6) "<?php
"
@@ -27,7 +27,7 @@ array(14) {
[1]=>
array(3) {
[0]=>
int(378)
int(380)
[1]=>
string(8) "<<<DOC1
"
@@ -37,7 +37,7 @@ array(14) {
[2]=>
array(3) {
[0]=>
int(381)
int(383)
[1]=>
string(1) "{"
[2]=>
@@ -46,7 +46,7 @@ array(14) {
[3]=>
array(3) {
[0]=>
int(310)
int(312)
[1]=>
string(2) "$s"
[2]=>
@@ -57,7 +57,7 @@ array(14) {
[5]=>
array(3) {
[0]=>
int(378)
int(380)
[1]=>
string(8) "<<<DOC2
"
@@ -67,7 +67,7 @@ array(14) {
[6]=>
array(3) {
[0]=>
int(379)
int(381)
[1]=>
string(4) "DOC2"
[2]=>
@@ -76,7 +76,7 @@ array(14) {
[7]=>
array(3) {
[0]=>
int(377)
int(379)
[1]=>
string(1) "
"
@@ -90,7 +90,7 @@ array(14) {
[10]=>
array(3) {
[0]=>
int(315)
int(317)
[1]=>
string(1) "
"
@@ -100,7 +100,7 @@ array(14) {
[11]=>
array(3) {
[0]=>
int(379)
int(381)
[1]=>
string(4) "DOC1"
[2]=>
@@ -111,7 +111,7 @@ array(14) {
[13]=>
array(3) {
[0]=>
int(377)
int(379)
[1]=>
string(1) "
"
+4 -21
View File
@@ -57,8 +57,8 @@ zend_module_entry xsl_module_entry = {
xsl_functions,
PHP_MINIT(xsl),
PHP_MSHUTDOWN(xsl),
PHP_RINIT(xsl), /* Replace with NULL if there's nothing to do at request start */
PHP_RSHUTDOWN(xsl), /* Replace with NULL if there's nothing to do at request end */
NULL,
NULL,
PHP_MINFO(xsl),
#if ZEND_MODULE_API_NO >= 20010901
"0.1", /* Replace with version number for your extension */
@@ -170,6 +170,7 @@ PHP_MINIT_FUNCTION(xsl)
xsltRegisterExtModuleFunction ((const xmlChar *) "function",
(const xmlChar *) "http://php.net/xsl",
xsl_ext_function_object_php);
xsltSetGenericErrorFunc(NULL, php_libxml_error_handler);
REGISTER_LONG_CONSTANT("XSL_CLONE_AUTO", 0, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("XSL_CLONE_NEVER", -1, CONST_CS | CONST_PERSISTENT);
@@ -273,7 +274,7 @@ PHP_MSHUTDOWN_FUNCTION(xsl)
(const xmlChar *) "http://php.net/xsl");
xsltUnregisterExtModuleFunction ((const xmlChar *) "function",
(const xmlChar *) "http://php.net/xsl");
xsltSetGenericErrorFunc(NULL, NULL);
xsltCleanupGlobals();
UNREGISTER_INI_ENTRIES();
@@ -282,24 +283,6 @@ PHP_MSHUTDOWN_FUNCTION(xsl)
}
/* }}} */
/* {{{ PHP_RINIT_FUNCTION
*/
PHP_RINIT_FUNCTION(xsl)
{
xsltSetGenericErrorFunc(NULL, php_libxml_error_handler);
return SUCCESS;
}
/* }}} */
/* {{{ PHP_RSHUTDOWN_FUNCTION
*/
PHP_RSHUTDOWN_FUNCTION(xsl)
{
xsltSetGenericErrorFunc(NULL, NULL);
return SUCCESS;
}
/* }}} */
/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(xsl)
+1 -1
View File
@@ -999,7 +999,7 @@ SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, ch
SAPI_API int sapi_flush(TSRMLS_D)
{
if (sapi_module.flush) {
sapi_module.flush(SG(server_context));
sapi_module.flush(SG(server_context) TSRMLS_CC);
return SUCCESS;
} else {
return FAILURE;
+1 -1
View File
@@ -227,7 +227,7 @@ struct _sapi_module_struct {
int (*deactivate)(TSRMLS_D);
int (*ub_write)(const char *str, unsigned int str_length TSRMLS_DC);
void (*flush)(void *server_context);
void (*flush)(void *server_context TSRMLS_DC);
struct stat *(*get_stat)(TSRMLS_D);
char *(*getenv)(char *name, size_t name_len TSRMLS_DC);
+12 -47
View File
@@ -179,7 +179,7 @@ static PHP_INI_MH(OnChangeMemoryLimit)
} else {
PG(memory_limit) = 1<<30; /* effectively, no limit */
}
return zend_set_memory_limit(PG(memory_limit));
return zend_set_memory_limit(PG(memory_limit) TSRMLS_CC);
}
/* }}} */
@@ -460,40 +460,6 @@ static PHP_INI_MH(OnChangeMailForceExtra)
/* defined in browscap.c */
PHP_INI_MH(OnChangeBrowscap);
/* {{{ PHP_INI_MH
*/
static PHP_INI_MH(OnChangeAlwaysPopulateRawPostData)
{
signed char *p;
#ifndef ZTS
char *base = (char *) mh_arg2;
#else
char *base;
base = (char *) ts_resource(*((int *) mh_arg2));
#endif
p = (signed char *) (base+(size_t) mh_arg1);
*p = zend_atol(new_value, new_value_length);
if (new_value_length == 2 && strcasecmp("on", new_value) == 0) {
*p = (signed char) 1;
}
else if (new_value_length == 3 && strcasecmp("yes", new_value) == 0) {
*p = (signed char) 1;
}
else if (new_value_length == 4 && strcasecmp("true", new_value) == 0) {
*p = (signed char) 1;
}
else if (new_value_length == 5 && strcasecmp("never", new_value) == 0) {
*p = (signed char) -1;
}
else {
*p = (signed char) atoi(new_value);
}
return SUCCESS;
}
/* }}} */
/* Need to be read from the environment (?):
* PHP_AUTO_PREPEND_FILE
@@ -596,7 +562,6 @@ PHP_INI_BEGIN()
STD_PHP_INI_BOOLEAN("allow_url_fopen", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_url_fopen, php_core_globals, core_globals)
STD_PHP_INI_BOOLEAN("allow_url_include", "0", PHP_INI_SYSTEM, OnUpdateBool, allow_url_include, php_core_globals, core_globals)
STD_PHP_INI_BOOLEAN("enable_post_data_reading", "1", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, enable_post_data_reading, php_core_globals, core_globals)
STD_PHP_INI_ENTRY("always_populate_raw_post_data", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnChangeAlwaysPopulateRawPostData, always_populate_raw_post_data, php_core_globals, core_globals)
STD_PHP_INI_ENTRY("realpath_cache_size", "16K", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_size_limit, virtual_cwd_globals, cwd_globals)
STD_PHP_INI_ENTRY("realpath_cache_ttl", "120", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_ttl, virtual_cwd_globals, cwd_globals)
@@ -1201,7 +1166,7 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
CG(parse_error) = 0;
} else {
/* restore memory limit */
zend_set_memory_limit(PG(memory_limit));
zend_set_memory_limit(PG(memory_limit) TSRMLS_CC);
efree(buffer);
zend_objects_store_mark_destructed(&EG(objects_store) TSRMLS_CC);
zend_bailout();
@@ -1828,7 +1793,7 @@ void php_request_shutdown(void *dummy)
}
} zend_end_try();
/* 7.5 free last error information */
/* 8. free last error information */
if (PG(last_error_message)) {
free(PG(last_error_message));
PG(last_error_message) = NULL;
@@ -1838,34 +1803,34 @@ void php_request_shutdown(void *dummy)
PG(last_error_file) = NULL;
}
/* 7. Shutdown scanner/executor/compiler and restore ini entries */
/* 9. Shutdown scanner/executor/compiler and restore ini entries */
zend_deactivate(TSRMLS_C);
/* 8. Call all extensions post-RSHUTDOWN functions */
/* 10. Call all extensions post-RSHUTDOWN functions */
zend_try {
zend_post_deactivate_modules(TSRMLS_C);
} zend_end_try();
/* 9. SAPI related shutdown (free stuff) */
/* 11. SAPI related shutdown (free stuff) */
zend_try {
sapi_deactivate(TSRMLS_C);
} zend_end_try();
/* 9.5 free virtual CWD memory */
/* 12. free virtual CWD memory */
virtual_cwd_deactivate(TSRMLS_C);
/* 10. Destroy stream hashes */
/* 13. Destroy stream hashes */
zend_try {
php_shutdown_stream_hashes(TSRMLS_C);
} zend_end_try();
/* 11. Free Willy (here be crashes) */
/* 14. Free Willy (here be crashes) */
zend_try {
shutdown_memory_manager(CG(unclean_shutdown) || !report_memleaks, 0 TSRMLS_CC);
} zend_end_try();
zend_interned_strings_restore(TSRMLS_C);
/* 12. Reset max_execution_time */
/* 15. Reset max_execution_time */
zend_try {
zend_unset_timeout(TSRMLS_C);
} zend_end_try();
@@ -2678,9 +2643,9 @@ PHPAPI int php_lint_script(zend_file_handle *file TSRMLS_DC)
#ifdef PHP_WIN32
/* {{{ dummy_indent
just so that this symbol gets exported... */
PHPAPI void dummy_indent(void)
PHPAPI void dummy_indent(TSRMLS_D)
{
zend_indent();
zend_indent(TSRMLS_C);
}
/* }}} */
#endif
+1 -1
View File
@@ -26,7 +26,7 @@
#include <dmalloc.h>
#endif
#define PHP_API_VERSION 20131106
#define PHP_API_VERSION 20131218
#define PHP_HAVE_STREAMS
#define YYDEBUG 0
-30
View File
@@ -33,19 +33,6 @@ static sapi_post_entry php_post_entries[] = {
};
/* }}} */
static zend_bool populate_raw_post_data(TSRMLS_D)
{
if (!SG(request_info).request_body) {
return (zend_bool) 0;
}
if (!PG(always_populate_raw_post_data)) {
return (zend_bool) !SG(request_info).post_entry;
}
return (zend_bool) (PG(always_populate_raw_post_data) > 0);
}
/* {{{ SAPI_POST_READER_FUNC
*/
SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader)
@@ -55,23 +42,6 @@ SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader)
/* no post handler registered, so we just swallow the data */
sapi_read_standard_form_data(TSRMLS_C);
}
if (populate_raw_post_data(TSRMLS_C)) {
size_t length;
char *data = NULL;
php_stream_rewind(SG(request_info).request_body);
length = php_stream_copy_to_mem(SG(request_info).request_body, &data, PHP_STREAM_COPY_ALL, 0);
php_stream_rewind(SG(request_info).request_body);
SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data, length);
sapi_module.sapi_error(E_DEPRECATED,
"Automatically populating $HTTP_RAW_POST_DATA is deprecated and "
"will be removed in a future version. To avoid this warning set "
"'always_populate_raw_post_data' to '-1' in php.ini and use the "
"php://input stream instead.");
}
}
}
/* }}} */
-1
View File
@@ -131,7 +131,6 @@ struct _php_core_globals {
zend_bool during_request_startup;
zend_bool allow_url_fopen;
zend_bool enable_post_data_reading;
signed char always_populate_raw_post_data;
zend_bool report_zend_debug;
int last_error_type;
+2 -2
View File
@@ -361,7 +361,7 @@ static void php_load_zend_extension_cb(void *arg TSRMLS_DC)
int length = strlen(filename);
if (IS_ABSOLUTE_PATH(filename, length)) {
zend_load_extension(filename);
zend_load_extension(filename TSRMLS_CC);
} else {
char *libpath;
char *extension_dir = INI_STR("extension_dir");
@@ -372,7 +372,7 @@ static void php_load_zend_extension_cb(void *arg TSRMLS_DC)
} else {
spprintf(&libpath, 0, "%s%c%s", extension_dir, DEFAULT_SLASH, filename);
}
zend_load_extension(libpath);
zend_load_extension(libpath TSRMLS_CC);
efree(libpath);
}
}
+3 -9
View File
@@ -46,17 +46,13 @@ static int php_compare_tick_functions(void *elem1, void *elem2)
return (func1 == func2);
}
PHPAPI void php_add_tick_function(void (*func)(int))
PHPAPI void php_add_tick_function(void (*func)(int) TSRMLS_DC)
{
TSRMLS_FETCH();
zend_llist_add_element(&PG(tick_functions), (void *)&func);
}
PHPAPI void php_remove_tick_function(void (*func)(int))
PHPAPI void php_remove_tick_function(void (*func)(int) TSRMLS_DC)
{
TSRMLS_FETCH();
zend_llist_del_element(&PG(tick_functions), (void *)func,
(int(*)(void*, void*))php_compare_tick_functions);
}
@@ -69,10 +65,8 @@ static void php_tick_iterator(void *data, void *arg TSRMLS_DC)
func(*((int *)arg));
}
void php_run_ticks(int count)
void php_run_ticks(int count TSRMLS_DC)
{
TSRMLS_FETCH();
zend_llist_apply_with_argument(&PG(tick_functions), (llist_apply_with_arg_func_t) php_tick_iterator, &count TSRMLS_CC);
}
+3 -3
View File
@@ -24,11 +24,11 @@
int php_startup_ticks(TSRMLS_D);
void php_deactivate_ticks(TSRMLS_D);
void php_shutdown_ticks(TSRMLS_D);
void php_run_ticks(int count);
void php_run_ticks(int count TSRMLS_DC);
BEGIN_EXTERN_C()
PHPAPI void php_add_tick_function(void (*func)(int));
PHPAPI void php_remove_tick_function(void (*func)(int));
PHPAPI void php_add_tick_function(void (*func)(int) TSRMLS_DC);
PHPAPI void php_remove_tick_function(void (*func)(int) TSRMLS_DC);
END_EXTERN_C()
#endif
+1
View File
@@ -734,6 +734,7 @@ static zend_bool php_auto_globals_create_post(const char *name, uint name_len TS
if (PG(variables_order) &&
(strchr(PG(variables_order),'P') || strchr(PG(variables_order),'p')) &&
!SG(headers_sent) &&
SG(request_info).request_method &&
!strcasecmp(SG(request_info).request_method, "POST")) {
sapi_module.treat_data(PARSE_POST, NULL, NULL TSRMLS_CC);
+3 -3
View File
@@ -1,8 +1,8 @@
/* automatically generated by configure */
/* edit configure.in to change version number */
#define PHP_MAJOR_VERSION 5
#define PHP_MINOR_VERSION 6
#define PHP_MINOR_VERSION 7
#define PHP_RELEASE_VERSION 0
#define PHP_EXTRA_VERSION "-dev"
#define PHP_VERSION "5.6.0-dev"
#define PHP_VERSION_ID 50600
#define PHP_VERSION "5.7.0-dev"
#define PHP_VERSION_ID 50700
+1 -1
View File
@@ -87,7 +87,7 @@ END_EXTERN_C()
BEGIN_EXTERN_C()
PHPAPI void php_stream_notification_notify(php_stream_context *context, int notifycode, int severity,
char *xmsg, int xcode, size_t bytes_sofar, size_t bytes_max, void * ptr TSRMLS_DC);
PHPAPI php_stream_context *php_stream_context_set(php_stream *stream, php_stream_context *context);
PHPAPI php_stream_context *php_stream_context_set(php_stream *stream, php_stream_context *context TSRMLS_DC);
END_EXTERN_C()
#define php_stream_notify_info(context, code, xmsg, xcode) do { if ((context) && (context)->notifier) { \
+1 -2
View File
@@ -2148,10 +2148,9 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod
/* }}} */
/* {{{ context API */
PHPAPI php_stream_context *php_stream_context_set(php_stream *stream, php_stream_context *context)
PHPAPI php_stream_context *php_stream_context_set(php_stream *stream, php_stream_context *context TSRMLS_DC)
{
php_stream_context *oldcontext = stream->context;
TSRMLS_FETCH();
stream->context = context;
+1 -1
View File
@@ -134,7 +134,7 @@ PHPAPI php_stream *_php_stream_xport_create(const char *name, size_t namelen, in
context STREAMS_REL_CC TSRMLS_CC);
if (stream) {
php_stream_context_set(stream, context);
php_stream_context_set(stream, context TSRMLS_CC);
if ((flags & STREAM_XPORT_SERVER) == 0) {
/* client */
+2 -2
View File
@@ -1121,7 +1121,7 @@ static int php_userstreamop_set_option(php_stream *stream, int option, int value
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s::" USERSTREAM_SET_OPTION " is not implemented!",
us->wrapper->classname);
ret = PHP_STREAM_OPTION_RETURN_ERR;
} else if (retval && zend_is_true(retval)) {
} else if (retval && zend_is_true(retval TSRMLS_CC)) {
ret = PHP_STREAM_OPTION_RETURN_OK;
} else {
ret = PHP_STREAM_OPTION_RETURN_ERR;
@@ -1629,7 +1629,7 @@ static int php_userstreamop_cast(php_stream *stream, int castas, void **retptr T
us->wrapper->classname);
break;
}
if (retval == NULL || !zend_is_true(retval)) {
if (retval == NULL || !zend_is_true(retval TSRMLS_CC)) {
break;
}
php_stream_from_zval_no_verify(intstream, &retval);
-7
View File
@@ -682,13 +682,6 @@ default_mimetype = "text/html"
; http://php.net/default-charset
;default_charset = "UTF-8"
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
; to disable this feature and it will be removed in a future version.
; If post reading is disabled through enable_post_data_reading,
; $HTTP_RAW_POST_DATA is *NOT* populated.
; http://php.net/always-populate-raw-post-data
;always_populate_raw_post_data = -1
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
-7
View File
@@ -682,13 +682,6 @@ default_mimetype = "text/html"
; http://php.net/default-charset
;default_charset = "UTF-8"
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
; to disable this feature and it will be removed in a future version.
; If post reading is disabled through enable_post_data_reading,
; $HTTP_RAW_POST_DATA is *NOT* populated.
; http://php.net/always-populate-raw-post-data
;always_populate_raw_post_data = -1
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
+1 -1
View File
@@ -108,7 +108,7 @@ static int sapi_apache_ub_write(const char *str, uint str_length TSRMLS_DC)
/* {{{ sapi_apache_flush
*/
static void sapi_apache_flush(void *server_context)
static void sapi_apache_flush(void *server_context TSRMLS_DC)
{
if (server_context) {
#if MODULE_MAGIC_NUMBER > 19970110
+1 -2
View File
@@ -245,14 +245,13 @@ php_apache_sapi_register_variables(zval *track_vars_array TSRMLS_DC)
}
static void
php_apache_sapi_flush(void *server_context)
php_apache_sapi_flush(void *server_context TSRMLS_DC)
{
php_struct *ctx;
apr_bucket_brigade *bb;
apr_bucket_alloc_t *ba;
apr_bucket *b;
ap_filter_t *f; /* output filters */
TSRMLS_FETCH();
ctx = server_context;
+1 -2
View File
@@ -287,11 +287,10 @@ php_apache_sapi_register_variables(zval *track_vars_array TSRMLS_DC)
}
static void
php_apache_sapi_flush(void *server_context)
php_apache_sapi_flush(void *server_context TSRMLS_DC)
{
php_struct *ctx;
request_rec *r;
TSRMLS_FETCH();
ctx = server_context;
+1 -1
View File
@@ -253,7 +253,7 @@ static int sapi_apache_ub_write(const char *str, uint str_length TSRMLS_DC)
/* {{{ sapi_apache_flush
*/
static void sapi_apache_flush(void *server_context)
static void sapi_apache_flush(void *server_context TSRMLS_DC)
{
if (server_context) {
#if MODULE_MAGIC_NUMBER > 19970110
+5 -7
View File
@@ -155,15 +155,13 @@ static request_rec *get_apache_request(zval *z TSRMLS_DC)
return r;
}
/* {{{ php_apache_request_new(request_rec *r)
/* {{{ php_apache_request_new(request_rec *r TSRMLS_DC)
* create a new zval-instance for ApacheRequest that wraps request_rec
*/
zval *php_apache_request_new(request_rec *r)
zval *php_apache_request_new(request_rec *r TSRMLS_DC)
{
zval *req;
zval *addr;
TSRMLS_FETCH();
MAKE_STD_ZVAL(addr);
Z_TYPE_P(addr) = IS_LONG;
@@ -1170,7 +1168,7 @@ PHP_FUNCTION(apache_request_sub_req_lookup_uri)
if (!sub_r) {
RETURN_FALSE;
}
return_value = php_apache_request_new(sub_r);
return_value = php_apache_request_new(sub_r TSRMLS_CC);
}
/* }}} */
@@ -1196,7 +1194,7 @@ PHP_FUNCTION(apache_request_sub_req_lookup_file)
if (!sub_r) {
RETURN_FALSE;
}
return_value = php_apache_request_new(sub_r);
return_value = php_apache_request_new(sub_r TSRMLS_CC);
}
/* }}} */
@@ -1222,7 +1220,7 @@ PHP_FUNCTION(apache_request_sub_req_method_uri)
if (!sub_r) {
RETURN_FALSE;
}
return_value = php_apache_request_new(sub_r);
return_value = php_apache_request_new(sub_r TSRMLS_CC);
}
/* }}} */
Loaded 100 of 119 files, more files were not shown because too many files have changed in this diff. Show more