Commit graph

179 commits

Author SHA1 Message Date
Dmitry Stogov
c63fc5d5f1 Moved static class members initialization into the proper place. 2018-10-17 11:36:51 +03:00
Dmitry Stogov
b945548e93 Removed redundand assertion 2018-10-17 11:21:03 +03:00
Dmitry Stogov
94099586ec Immutable clases and op_arrays 2018-10-15 23:34:01 +03:00
Dmitry Stogov
2ebac3263b Removed wrong reference counting 2018-10-03 20:15:30 +03:00
Dmitry Stogov
60591328f8 More careful handling of function prototypes 2018-10-03 18:32:25 +03:00
Dmitry Stogov
b9e485a7fd typo 2018-10-03 14:35:36 +03:00
Dmitry Stogov
c88b53318f Avoid method compatibility check with itself 2018-10-03 12:32:33 +03: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
Dmitry Stogov
27b9fac19c Drop unused variable 2018-09-19 14:43:17 +03:00
Dmitry Stogov
2a54867f7e Micro-optimization 2018-09-19 13:54:37 +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
beb3594eb8 Better ZEND_ACC_CHANGED handling 2018-09-12 11:43:15 +03:00
Dmitry Stogov
1570fe180f Removed weird test, trait can't be "static" or "final". 2018-09-11 17:07:06 +03:00
Dmitry Stogov
3a249e769b Squashed commit of the following:
commit 2d3cac9e00
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Sep 11 11:54:47 2018 +0300

    Fixed static property access

commit 31786ee272
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Sep 11 11:05:29 2018 +0300

    Avoid duplicate checks

commit 5ae502b979
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Sep 11 10:39:17 2018 +0300

    Optimization

commit 82c17f0e8a
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Sep 11 09:26:50 2018 +0300

    Removed unused zend_duplicate_property_info()

commit ba53d1d0dd
Merge: eacc11b8fd c4b14370cf
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Sep 11 09:24:13 2018 +0300

    Merge branch 'master' into shadow

    * master:
      7.0.33 next
      Sync NEWS [ci skip]
      add NEWS for 76582
      Enforce ordering of property compare in object comparisons
      Fixed wrong assertion
      Skip test on unsuitable env

commit eacc11b8fd
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon Sep 10 13:12:39 2018 +0300

    Fixed failure of ext/spl/tests/array_017.phpt

commit 62d1871430
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon Sep 10 11:55:07 2018 +0300

    Fixed issues

commit 1d37e3a40e
Merge: d6c3f098b6 1e550e6f7e
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon Sep 10 10:21:20 2018 +0300

    Merge branch 'master' into shadow

    * master:
      Update NEWS
      Fix for bug #76582
      Fix ssl stream reneg limit test to print only after first renegotiation
      Make a copy unconditionally
      Fix memory leak in pcre cache
      Remove not needed checking for <errno.h>
      Remove HAVE_ASSERT_H
      Add test for bug #76850
      Fixed bug #76850 Exit code mangled by set locale/preg_match
      Remove empty PHP tags from test
      Fix #75273: php_zlib_inflate_filter() may not update bytes_consumed
      Fix PCRE2 exclusion and remove dead libs in Makefile.gcov
      Report mem leaks to stderr if no Win debugger is present
      Use combined assignment contanation operator
      Fixed bug #76796
      Support fixed address mmap without replacement

commit d6c3f098b6
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Sep 7 13:56:30 2018 +0300

    Get rid of ZEND_ACC_SHADOW
2018-09-11 11:56:45 +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
a57ec0aeb5 Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed reference-countingin ZTS build.
2018-09-03 10:21:55 +03:00
Dmitry Stogov
bc731f8e7a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed reference-countingin ZTS build.
2018-09-03 10:21:42 +03:00
Dmitry Stogov
accf5ed621 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed reference-countingin ZTS build.
2018-09-03 10:21:32 +03:00
Dmitry Stogov
7fde2243a7 Fixed reference-countingin ZTS build. 2018-09-03 10:20:40 +03:00
Dmitry Stogov
19376453e8 Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed incorrect ZEND_ACC_ARENA_ALLOCATED usage (it must be used only for internal functions).
2018-08-29 23:41:46 +03:00
Dmitry Stogov
566a75e97c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed incorrect ZEND_ACC_ARENA_ALLOCATED usage (it must be used only for internal functions).
2018-08-29 23:41:22 +03:00
Dmitry Stogov
fd5a453cb9 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed incorrect ZEND_ACC_ARENA_ALLOCATED usage (it must be used only for internal functions).
2018-08-29 23:41:14 +03:00
Dmitry Stogov
709e4e4f17 Fixed incorrect ZEND_ACC_ARENA_ALLOCATED usage (it must be used only for internal functions). 2018-08-29 23:40:17 +03:00
Dmitry Stogov
2fbfdde1b6 Cleanup class linking 2018-08-27 16:40:25 +03:00
Dmitry Stogov
ea9628936f Move zend_verify_abstract_class() into zend_inheritance.c 2018-08-27 12:56:17 +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
Christoph M. Becker
1f698e0f94 Merge branch 'PHP-7.3'
* PHP-7.3:
  Fix #76773 - Methods with a concrete scope need to be added again
2018-08-22 14:08:46 +02:00
Chris Wright
9ace33b9c5 Fix #76773 - Methods with a concrete scope need to be added again 2018-08-22 14:08:15 +02:00
Gabriel Caruso
84b195d9fc Fix some misspellings 2018-08-12 16:15:45 +02:00
Pedro Magalhães
887235773d Fix #76700 - Methods with altered visibility need to be added again 2018-08-07 14:22:37 +08:00
Pedro Magalhães
97b2558b76 Fix #76700 - Methods with altered visibility need to be added again 2018-08-03 17:30:03 +01:00
Dmitry Stogov
7d4e18b05d Improved user iterator implementation to reduce zend_class_entry memory consumption and avoid race condition during resolving/caching of user iterator functions of internal classes in ZTS build. 2018-07-12 14:04:14 +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
e4be6ce0fa Combined few checks into one 2018-07-09 17:29:34 +03:00
Dmitry Stogov
797e87060c Avoid reloading 2018-07-09 16:28:13 +03:00
Dmitry Stogov
a34fedb723 Eliminated check 2018-07-09 15:18:09 +03:00
Dmitry Stogov
43aca3118a Avoid string comparisons for magic methods (all magic methods start with "__") 2018-07-02 17:03:02 +03:00
Dmitry Stogov
6dc0cd868d Fixed ZTS race condition (zend_class_entry->ce_flags of internal classes must not be modified, because internal class enties are shared between threads) 2018-06-27 12:33:20 +03: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
73b675a988 Avoid duplication of "shadow" property_info 2018-06-22 02:46:59 +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
Nikita Popov
b4dff68379 Remove no longer necessary type-name special cases
zend_get_type_by_name() now produces the correct value by itself,
so we no longer need these workarounds.
2018-02-04 23:20:44 +01:00
Gabriel Caruso
6400264856 Trailing whitespaces
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-03 14:38:00 +01: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
efcbea4345 Cheaper reference construction 2017-12-26 13:30:25 +03:00