Dmitry Stogov
f5e1868601
Improved hash copying
2018-09-19 17:53:10 +03:00
Dmitry Stogov
b634ded197
Class constants and default property values can't be IS_REFERENCE anymore.
2018-09-18 18:46:10 +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
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
Dmitry Stogov
67397970b2
Replace zend_class_entry->traits by persistent zend_class_entry->trait_names.
...
Move trait binding code into ZEND_DECLARE_*CLASS opcodes.
Remove ZEND_ADD_TRIAIT and ZEND_BIND_TRAITS opcodes.
2018-08-23 02:02:26 +03:00
Dmitry Stogov
fc8d6b6797
Introduced ZEND_COMPILE_IGNORE_OTHER_FILES compiler option, to allow "separate" file compilation (unaffected but previously compiled files), without CG(function_table)/CG(class_table) manipulation.
2018-08-22 13:45:56 +03:00
Dmitry Stogov
168376e98e
Cleanup
2018-08-21 13:21:56 +03:00
Dmitry Stogov
85ee47eda0
Changed structure of zend_class_entry.trait_aliases and zend_class_entry.trait_precedences to avoid keeping "intermediate" trait references, that are used only during inheritance.
2018-07-11 18:56:10 +03:00
Dmitry Stogov
956ac5cbf5
Fixed possible assertion/crash when PHP script can't be stored in SHM (e.g. because another process already did this)
2018-07-11 10:35:36 +03:00
Dmitry Stogov
716bbd3480
Remove duplicated code (keep destroy_zend_function() for compatibility)
2018-06-27 14:54:42 +03:00
Dmitry Stogov
7f67513ca3
Lazy function copying from op_cache SHM into process memory
2018-06-25 19:53:58 +03:00
Nikita Popov
73f07738b9
Fix off-by-one error
2018-06-25 15:26:10 +02:00
Nikita Popov
2543e61aed
Fixed bug #76509
...
In PHP static properties are shared between inheriting classes,
unless they are explicitly overwritten. However, because this
functionality was implemented using reference, it was possible
to break the implementation by reassigning the static property
reference.
This is fixed by switching the implementation from using references
to using INDIRECTs, which cannot be affected by userland code.
2018-06-25 15:04:09 +02: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
4df89a31b0
Eliminate useless checks
2018-04-04 02:12:26 +03:00
Dmitry Stogov
d7f2dc4ec6
Improve HashTable iterators handling:
...
- Avoid iterators check/update on each HashTable update opration
- Keep position equal (or above) nNumUsed instead of HT_INVALID_IDX
- Fixed iterators handling in array_unshift()
2018-03-22 02:41:49 +03:00
Dmitry Stogov
84a0423e05
Set and keep HASH_FLAG_STATIC_KEYS for all HashTables stored in SHM (or file cache).
2018-03-06 00:00:13 +03:00
Dmitry Stogov
d76061d5c1
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed invalid destructor
2018-03-05 23:38:15 +03:00
Dmitry Stogov
53baf6fa1d
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed invalid destructor
2018-03-05 23:33:53 +03:00
Dmitry Stogov
87553b0730
Fixed invalid destructor
2018-03-05 23:33:08 +03:00
Anatol Belski
4656c9d88a
Fix datatypes for native AVX build
2018-02-14 18:29:41 +01:00
Xinchen Hui
5c05870ef6
Optimized fast_memcpy with AVX instructions
...
Great thanks to welting for helping :)
2018-02-15 00:18:47 +08:00
Dmitry Stogov
d968581c5b
typo
2018-02-09 11:33:02 +03:00
Anatol Belski
674c1ea7dc
Fix incompatible pointer warning
2018-02-01 16:52:18 +01:00
Dmitry Stogov
9cbb521094
Access HashTable.u.flags through HT_FLAGS() macro.
2018-01-22 13:36:15 +03:00
Dmitry Stogov
c9034c3b33
Get rid of zend_op_array.early_binding
2018-01-11 19:15:52 +03:00
Dmitry Stogov
d89c8dd8b8
Remove HashTable holes in functions and class tables.
2018-01-10 10:15:55 +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
Xinchen Hui
ccd4716ec7
year++
2018-01-02 12:53:31 +08:00
Dmitry Stogov
4691cbe5d1
Fixed possible local assembler labels conflicts.
2017-12-20 21:44:24 +03:00
Dmitry Stogov
83e495e0fd
Move constants into read-only data segment
2017-12-14 22:14:36 +03:00
Dmitry Stogov
b34660f26e
Use inline assembler for fast_memcpy()
2017-12-06 17:42:47 +03:00
Dmitry Stogov
cc12acefcd
Use cheaper functions
2017-12-04 13:21:35 +03:00
Dmitry Stogov
e221e7379e
Avoid function duplication
2017-11-30 16:23:15 +03:00
Dmitry Stogov
245422653c
Functions must be stored with lowercase keys
2017-11-30 15:59:29 +03:00
Dmitry Stogov
49ea143bbd
Encapsulate reference-counting primitives.
...
Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead.
Added mactros to validate reference-counting (disabled for now).
These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.
2017-10-27 01:28:58 +03:00
Dmitry Stogov
cb9d81ef4f
Refactored recursion pretection
2017-10-06 01:34:50 +03: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
Anatol Belski
b204b3abd1
further normalizations, uint vs uint32_t
...
fix merge mistake
yet one more replacement run
2016-11-26 17:29:01 +01: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
Xinchen Hui
17c3aa9dd1
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error)
2016-04-14 20:21:34 +08:00
Xinchen Hui
8a17b1a241
Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error)
2016-04-14 20:21:19 +08:00
Lior Kaplan
3d5438bf7b
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Update header to PHP Version 7
Happy new year (Update copyright to 2016)
Happy new year (Update copyright to 2016)
2016-01-01 20:04:31 +02:00
Lior Kaplan
ed35de784f
Merge branch 'PHP-5.6' into PHP-7.0
...
* PHP-5.6:
Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf
Happy new year (Update copyright to 2016)
2016-01-01 19:21:47 +02: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
09aa68b294
Break dependency between opcache and optimizer. Remove copatibility macros.
2015-11-12 02:02:24 +03:00