Nikita Popov
290adc4132
Introduce separate ZEND_AST_CLASS_NAME AST node
...
Instead of representing this as a ZEND_AST_CLASS_CONST with a
"class" constant name.
Class constants and ::class are unrelated features that happen to
share syntax, so represent and handle them separately.
2019-01-04 10:49:23 +01:00
Nikita Popov
03094c7af3
Merge branch 'PHP-7.3'
2019-01-04 09:53:36 +01:00
Nikita Popov
1ed20669c5
Merge branch 'PHP-7.2' into PHP-7.3
2019-01-04 09:53:30 +01:00
Nikita Popov
41af1e6781
Fix self::class inside constant in global scope
...
Previously this triggered an assertion failure. The behavior is
not quite correct, in that self::class should generate an exception
if there is no self, but returns an empty string here. Fixing that
would be a bit too intrusive for the 7.2 branch.
2019-01-04 09:52:04 +01:00
Nikita Popov
f9208e9bf8
Merge branch 'PHP-7.3'
2019-01-02 11:34:24 +01:00
Nikita Popov
613683580b
Merge branch 'PHP-7.2' into PHP-7.3
2019-01-02 11:34:15 +01:00
Nikita Popov
73596c56e7
Partial fix for bug #75426
...
This does not print the exact line of the comma, but rather the line
of the previous element. This should generally be "good enough", as
the line number is close (off by one) to the actual issue now.
Previously it would point to the start of the array, which may be
very far away.
2019-01-02 11:32:48 +01:00
Nikita Popov
636b1c3d26
Drop _ex from zend_compile_class_ref_ex
...
The non-ex version no longer exists.
2019-01-02 09:56:40 +01:00
Michael Moravec
f5044a12dd
Implement ZEND_ARRAY_KEY_EXISTS opcode to speed up array_key_exists()
2018-12-26 23:54:11 +03:00
Dmitry Stogov
636b16402b
Fixed crashes introduced by 7e597f48e9
(only master was affected)
2018-12-25 23:30:59 +03:00
Dmitry Stogov
773ed62555
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Fixed bug #77339 (__callStatic may get incorrect arguments)
2018-12-24 13:25:24 +03:00
Dmitry Stogov
ddfb44f2cf
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fixed bug #77339 (__callStatic may get incorrect arguments)
2018-12-24 13:23:47 +03:00
Dmitry Stogov
7e597f48e9
Fixed bug #77339 (__callStatic may get incorrect arguments)
2018-12-24 13:22:43 +03:00
Nikita Popov
6debea2fd8
Merge branch 'PHP-7.3'
2018-12-10 13:36:54 +01:00
Nikita Popov
93aabf1533
Fixed bug #77275
...
Instead of juggling with this problem during literal compaction,
make sure that we always initialize Z_EXTRA for literals, which
seems like the more robust solution.
2018-12-10 13:36:23 +01:00
Dmitry Stogov
f12e6a076f
Reorder conditions
2018-12-07 19:21:26 +03:00
Dmitry Stogov
99658f682e
Improve zend_check_live_ranges()
2018-12-07 18:15:14 +03:00
Dmitry Stogov
be4c67a40a
Stop passing CG(active_op_array) between internal compiler functions.
2018-12-07 17:47:56 +03:00
Gabriel Caruso
cdd8368d6f
Clean up unnecessary ternary expressions and simplify some returns
...
- Simplify conditions
- Use ZEND_HASH_APPLY_* instead of hard-coded booleans
- Use ZEND_NORMALIZE_BOOL
- Drop sign in favor of ZEND_NORMALIZE_BOOL
2018-12-03 01:22:14 +01:00
Nikita Popov
9adc8d546c
Merge branch 'PHP-7.3'
2018-11-27 19:44:52 +01:00
Nikita Popov
12e88781e1
Merge branch 'PHP-7.2' into PHP-7.3
2018-11-27 19:44:45 +01:00
Nikita Popov
b565c85b9e
Improve fix for #76046
...
Also locate the JMP at the start of the foreach.
Patch suggested by Derick.
2018-11-27 19:43:25 +01:00
Nikita Popov
6faa625cb8
Merge branch 'PHP-7.3'
2018-11-27 16:39:35 +01:00
Nikita Popov
d78211aec0
Merge branch 'PHP-7.2' into PHP-7.3
2018-11-27 16:39:21 +01:00
Nikita Popov
d6595f276f
Fixed bug #76046
...
Place FE_FREE on start line of foreach, instead of whatever random
line number might be in CG(zend_lineno) at the time.
2018-11-27 16:37:55 +01:00
Levi Morrison
74d15b535a
Remove do_bind_inherited_class; use do_bind_class
...
Pass NULL as the second parameter. I don't know if in the past these
differed more, but there isn't any point to having both of them
anymore.
2018-11-07 18:54:00 +01:00
Zeev Suraski
9afce019e0
Future-proof email addresses
2018-11-01 18:35:32 +02:00
Zeev Suraski
54dc07f3dc
Update email addresses. We're still @Zend, but future proofing it...
2018-11-01 17:20:07 +02:00
Dmitry Stogov
3fe698b904
Mark "top-level" functions.
2018-10-19 13:22:29 +03:00
Dmitry Stogov
9226695c22
Mark "top-level" classes
2018-10-17 16:12:46 +03:00
Dmitry Stogov
d57cd36e47
Immutable clases and op_arrays.
...
Squashed commit of the following:
commit cd0c36c3f9
Merge: 4740dabb84
ad6738e886
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 14:43:38 2018 +0300
Merge branch 'master' into immutable
* master:
Remove the "auto" encoding
Fixed bug #77025
Add vtbls for EUC-TW encoding
commit 4740dabb84
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 14:12:28 2018 +0300
Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_ptr fields in immutable classes.
commit ad7a78b253
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:46:30 2018 +0300
Added comment
commit 0276ea5187
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:42:43 2018 +0300
Added type cast
commit c63fc5d5f1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:36:51 2018 +0300
Moved static class members initialization into the proper place.
commit b945548e93
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:21:03 2018 +0300
Removed redundand assertion
commit d5a4108840
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:19:13 2018 +0300
Removed duplicate code
commit 8dadca8864
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:05:43 2018 +0300
Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_OFFSET2PTR() and ZEND_MAP_PTR_PTR2OFFSET() macros.
commit 9ef07c88bd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 10:48:29 2018 +0300
typo
commit a06f0f3d3a
Merge: 94099586ec
3412345ffe
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 10:47:07 2018 +0300
Merge branch 'master' into immutable
* master:
Remove unused variable makefile_am_files
Classify object handlers are required/optional
Add support for getting SKIP_TAGSTART and SKIP_WHITE options
Remove some obsolete config_vars.mk occurrences
Remove bsd_converted from .gitignore
Remove configuration parser and scanners ignores
Remove obsolete buildconf.stamp from .gitignore
[ci skip] Add magicdata.patch exception to .gitignore
Remove outdated ext/spl/examples items from .gitignore
Remove unused test.inc in ext/iconv/tests
commit 94099586ec
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 15 23:34:01 2018 +0300
Immutable clases and op_arrays
2018-10-17 15:52:50 +03:00
Peter Kokot
902d39a3a7
Trim trailing whitespace in source code files
2018-10-13 14:14:50 +02:00
Bob Weinand
dcdf1ccf68
Initialize ce->parent_name to NULL
2018-10-07 11:21:48 +02:00
Nikita Popov
a515f60790
Remove unused backpatch_count field
2018-10-05 12:14:42 +02:00
Dmitry Stogov
a2e8334613
Allocate only necessary space for static properties of internal classes in ZTS mode.
2018-10-01 19:05:31 +03:00
Nikita Popov
c4cb3250ca
Generalize compile_typename
...
Return zend_type instead of assigning to arg_info. Also move
nullable handling into the function.
2018-09-29 18:53:48 +02:00
Nikita Popov
2ae2e820be
Merge branch 'PHP-7.3'
2018-09-29 14:23:13 +02:00
Nikita Popov
8b8b625d08
Fixed bug #72635
...
This seems to be a simple oversight, where we did not enable
exceptions. Other constexpr conditions already throw, so there is
no particular reason to stick to a fatal error here.
2018-09-29 14:21:08 +02:00
Dmitry Stogov
ef00e7e547
Remove zend_hash_exists()
2018-09-19 12:22:58 +03:00
Dmitry Stogov
2df91cb519
Fixed crashes in ZTS build introduced by 689c6fb188
2018-09-18 16:49:58 +03:00
Dmitry Stogov
689c6fb188
Replace ZEND_ACC_ANON_BOUND, ZEND_ACC_UNRESOLVED_PARENT and ZEND_ACC_UNRESOLVED_INTERFACES with single ZEND_ACC_LINKED.
2018-09-18 11:41:40 +03:00
Dmitry Stogov
8939c4d96b
Get rid of ZEND_ACC_CTOR, ZEND_ACC_DTOR and ZEND_ACC_IMPLEMENTED_ABSTRACT
2018-09-05 13:16:10 +03:00
Dmitry Stogov
887e126240
Fixed condition
2018-09-03 14:50:35 +03:00
Dmitry Stogov
cd9f0a22fc
Perform run-time binding reusing HashTable bucket (without new bucket insertion).
2018-08-29 00:35:07 +03:00
Dmitry Stogov
2fbfdde1b6
Cleanup class linking
2018-08-27 16:40:25 +03:00
Dmitry Stogov
02eded868c
Avoid function copying
2018-08-27 12:47:32 +03:00
Dmitry Stogov
6136a20544
ZEND_DECLARE_CLASS, ZEND_DECLARE_INHERITED_CLASS and ZEND_DECLARE_INHERITED_CLASS_DELAYED don't need return value anymore.
2018-08-24 15:40:53 +03:00
Dmitry Stogov
b36dbdd1dd
Perform "early-binding" directly during compilation
2018-08-24 15:18:38 +03:00
Dmitry Stogov
8050f4a334
Keep information about unresolved parent class in zend_class_entry->parent_name
2018-08-24 00:20:57 +03:00
Dmitry Stogov
d140df58e6
Keep information about unresolved interfaces in zend_class_entry->interface_names.
...
Move interface implementation code into ZEND_DECLARE_*CLASS opcodes.
Remove ZEND_ADD_INTERFACE and ZEND_VERIFY_ABSTRACT_CLASS opcodes.
2018-08-23 17:16:28 +03:00