Dmitry Stogov
4a475a4976
Replace legacy zval_dtor() by zval_ptr_dtor_nogc() or even more specialized destructors.
...
zval_dtor() doesn't make a lot of sense in PHP-7.* and it's used incorrectly in some places.
Its occurances should be replaced by zval_ptr_dtor() or zval_ptr_dtor_nogc(), or even more specialized destructors.
2018-07-04 19:22:24 +03:00
Dmitry Stogov
7eb045d31a
API cleanup. Removed unused functions (kept compatibility macros).
2018-07-04 00:50:57 +03:00
Dmitry Stogov
5eb1f92f31
Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.
2018-05-28 16:27:12 +03:00
Dmitry Stogov
524f5245c5
Avoid useless checks, using zend_string_efree(), in cases where the string is known to be a temporary allocated zend_string.
2018-05-08 17:30:15 +03:00
Dmitry Stogov
0a336f9421
Moved IS_CONSTANT_VISITED_MARK, used for protection from recursive self-referencing class constants, from zval.u1.v.type_flags into zval.u2.access_flags.
2018-01-18 11:36:04 +03:00
Xinchen Hui
a6519d0514
year++
2018-01-02 12:57:58 +08:00
Xinchen Hui
7a7ec01a49
year++
2018-01-02 12:55:14 +08:00
Dmitry Stogov
a6fcbb7c87
Use zend_hash_find() instead of zend_hash_find_ptr() to avoid double check
2017-12-27 13:26:06 +03:00
Dmitry Stogov
83e495e0fd
Move constants into read-only data segment
2017-12-14 22:14:36 +03:00
Dmitry Stogov
fd453aa1d1
Intern string constant values
2017-12-07 12:27:16 +03:00
Dmitry Stogov
7803459242
Wrap functions necessary only for ZTS build with #ifdef
2017-12-07 11:59:58 +03:00
Dmitry Stogov
74c84cd7f0
Use zend_string_equal*() API for zend_string equality check instead of direct memcmp() usage.
2017-12-04 17:17:02 +03:00
Dmitry Stogov
cc12acefcd
Use cheaper functions
2017-12-04 13:21:35 +03:00
Dmitry Stogov
3f86f43e51
Intern persistent constant names in first place
2017-11-30 01:15:11 +03:00
Dmitry Stogov
084c17fe0b
Use zend_string_tolower() where it's possible (to avoid reallocations).
...
Allow zend_string_tolower_ex() to create parsistent strings
2017-11-30 01:13:39 +03:00
Xinchen Hui
3fa0cee640
Revert "Use zend_get_executed_filename_ex"
...
This reverts commit 2a37625c20
.
2017-11-02 12:12:40 +08:00
Xinchen Hui
2a37625c20
Use zend_get_executed_filename_ex
2017-11-01 15:40:54 +08:00
Dmitry Stogov
ef5ea48741
Always use IS_CONSTANT_AST (IS_CONSTANT is removed).
2017-10-10 10:11:05 +03:00
Anatol Belski
bc5811f361
further sync for vim mode lines
2017-07-04 18:12:45 +02:00
Dmitry Stogov
f25ecdacf8
shutdown_executor() refactoring (reuse opcache fast request shutdown code)
2017-06-22 01:45:28 +03:00
Nikita Popov
6ad0a6fb04
Merge branch 'PHP-7.1'
2017-03-15 19:50:26 +01:00
Nikita Popov
2bba4a0d7f
Fix bug #69676
2017-03-15 19:49:02 +01:00
Anatol Belski
c698299550
Interned strings unification for TS/NTS
...
Hereby, interned strings are supported in thread safe PHP. The patch
implements two types of interned strings
- interning per process, strings are not freed till process end
- interning per request, strings are freed at request end
There is no runtime interning.
With Opcache, all the permanent iterned strings are copied into SHM on
startup, additional copying into SHM might happen on demand.
2017-03-04 10:39:13 +01:00
Sammy Kaye Powers
dac6c639bb
Update copyright headers to 2017
2017-01-04 11:23:42 -06:00
Sammy Kaye Powers
9e29f841ce
Update copyright headers to 2017
2017-01-02 09:30:12 -06:00
Dmitry Stogov
503c32e06e
Export zend_quick_get_constant()
2016-11-29 11:07:49 +03:00
Nikita Popov
ec6d70db77
Fix leak on self-referencing constants
2016-08-03 23:10:09 +02:00
Dmitry Stogov
c19cb70dac
Revert "Refactor zval cleanup into single function"
...
This reverts commit bac6fdb0c5
.
2016-05-06 10:47:58 +03:00
Bob Weinand
bac6fdb0c5
Refactor zval cleanup into single function
...
Also use zval_ptr_dtor_nogc() everywhere in Zend in favor of zval_dtor()
2016-05-05 23:31:57 +02:00
Nikita Popov
0ce7189265
Merge branch 'PHP-7.0'
...
Conflicts:
Zend/zend_constants.c
2016-05-02 20:04:24 +02:00
Nikita Popov
ec7c3c22b6
Fix leak in zend_get_constant_ex
2016-05-02 19:59:43 +02:00
Dmitry Stogov
6499162ff0
- get rid of EG(scope). zend_get_executed_scope() should be used instead.
...
- ichanged zval_update_constant_ex(). Use IS_TYPE_IMMUTABLE flag on shared constants and AST, instead of "inline_change" parameter.
2016-04-28 04:13:34 +03:00
Dmitry Stogov
a186ac0e47
IS_CONST operands don't have to be separated. Use reference-counting instead of duplication.
...
- with opcache all IS_CONST operands are not refcounted (scalars, interned strings or immutable arrays)
- without opcache IS_CONST operands are not shared between processes or threads and may use common reference counters
2016-04-05 20:09:14 +03:00
Xinchen Hui
563659822d
Merge branch 'PHP-7.0'
2016-01-02 17:56:54 +08:00
Xinchen Hui
97a9470d97
bump year which is missed in rev 49493a2
2016-01-02 17:56:11 +08:00
Dmitry Stogov
a75c195000
Implemented the RFC Support Class Constant Visibility
.
...
Squashed commit of the following:
commit f11ca0e7a5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Dec 8 12:38:42 2015 +0300
Fixed test expectation
commit 211f873f54
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Dec 8 12:28:38 2015 +0300
Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags
commit 51deab84b2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Dec 7 11:18:55 2015 +0300
Fixed issues found by Nikita
commit 544dbd5b47
Author: Dmitry Stogov <dmitry@zend.com>
Date: Sat Dec 5 02:41:05 2015 +0300
Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility
@reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.
2015-12-08 12:40:42 +03:00
Dmitry Stogov
e58682a2c4
Fixed incorrect type usage
2015-10-28 10:26:47 +03:00
Aaron Piotrowski
5df893ce3c
Use NULL where possible for exception class
...
Matches usage of zend_throw_exception()/zend_throw_exception_ex().
2015-07-07 12:10:55 -05:00
Aaron Piotrowski
22c38b2ef5
Remove need to pass error level
2015-07-03 17:53:41 -05:00
Aaron Piotrowski
5a99c07ecc
Enable throwing custom exceptions from errors
2015-07-03 17:53:40 -05:00
Dmitry Stogov
7aa7627172
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 13:59:27 +03:00
Dmitry Stogov
49cf7c5d12
Don't propogate "fake" EX(called_scope) and EX(This) into each internal function.
...
They need quite seldom and it's cheaper to get them from corresponfing upper stack frame.
2015-04-23 12:16:37 +03:00
Dmitry Stogov
ea09a9fa32
Convert fatal errors into EngineExceptions
...
Make zval_update_constant_ex(), zval_update_constant(), zend_update_class_constants() and zend_ast_evaluate() return SUCCESS or FAILURE.
2015-04-02 02:05:25 +03:00
Dmitry Stogov
ec760d8fff
Convert fatal errors into EngineExceptions
2015-04-01 20:01:57 +03:00
Dmitry Stogov
acfc31c0f8
Use zend_error_noreturn() for fatal errors
2015-04-01 13:32:23 +03:00
Dmitry Stogov
4e11095438
Reimplemented special constant handling. Now __HALT_COMPILER_OFFSET__ is resolved at compile-time. __CLASS__ retrived using separate ZEND_FETCH_CLASS_NAME opcode.
2015-03-18 15:33:56 +03:00
Dmitry Stogov
65b7f4860e
Revert "Improved zend_get_special_constant"
...
This reverts commit 624eb49e78
.
2015-03-18 15:25:27 +03:00
Xinchen Hui
624eb49e78
Improved zend_get_special_constant
2015-03-18 12:22:07 +08:00
Xinchen Hui
fc33f52d8c
bump year
2015-01-15 23:27:30 +08:00
Stanislav Malyshev
b7a7b1a624
trailing whitespace removal
2015-01-10 15:07:38 -08:00