Nikita Popov
a5fa51afbb
Don't overload get_properties for ArrayObject
...
Instead overload get_properties_for for a few specific cases such
as array casts. This resolves the issue where ArrayObject
get_properties may violate engine invariants in some cases.
2018-10-10 10:39:10 +02:00
Nikita Popov
f48ee1ff58
Clarify that the get_properties handler is required
...
Some places were checking for non-null get_properties, some weren't.
Make it clear that the handler is required and such checks are not
necessary.
2018-10-04 12:46:50 +02:00
Nikita Popov
1e14b7a369
Write to correct smart_str
...
Mixed this up during the migration to ZEND_HASH_FOREACH.
2018-10-03 11:03:55 +02:00
Nikita Popov
a659d16adf
Merge branch 'PHP-7.3'
2018-10-03 10:50:38 +02:00
Nikita Popov
9f3ea20320
Merge branch 'PHP-7.2' into PHP-7.3
2018-10-03 10:50:27 +02:00
Nikita Popov
54aa76167b
Merge branch 'PHP-7.1' into PHP-7.2
2018-10-03 10:50:16 +02:00
Nikita Popov
945f315506
Reflection: Copy invoke function also in the variadic case
...
It doesn't matter how the parameters are provided, we always have
to copy the trampoline invoke function.
2018-10-03 10:48:42 +02:00
Nikita Popov
ac96a57818
Remove uses of apply_with_arguments API in reflection
...
Instead of ZEND_HASH_FOREACH. As a side-effect, this fixes a latent
bug in _addmethod, where a zval was interpreted as a zval*.
Also apply some optimizations to getProperties() while at it: For
declared properties, use the HT key instead of unmangling the
property name. For dynamic properties check INDIRECT instead of
looking up prop info to determine if the property is dynamic.
2018-10-03 10:37:42 +02:00
Nikita Popov
10b1ab9275
Some reflection cleanups
...
Use zend_string and zend_string_tolower in more places, clean up
__invoke handling slightly.
2018-10-02 23:14:13 +02:00
Nikita Popov
784579d99a
Merge branch 'PHP-7.3'
2018-10-02 18:20:30 +02:00
Nikita Popov
a42801abe3
Merge branch 'PHP-7.2' into PHP-7.3
2018-10-02 18:20:25 +02:00
Nikita Popov
f0647edd88
Fixed bug #66430
2018-10-02 18:19:53 +02:00
Nikita Popov
c8188fdd3b
Merge branch 'PHP-7.3'
2018-10-02 17:49:08 +02:00
Nikita Popov
b8392803f9
Merge branch 'PHP-7.2' into PHP-7.3
2018-10-02 17:48:56 +02:00
Nikita Popov
d2477b284b
Fixed bug #76936
2018-10-02 17:47:07 +02:00
Nikita Popov
96da1fe8a9
Fixed bug #76737
...
Explicitly prohibit serialization and unserialization of reflection
objects.
2018-09-29 14:47:57 +02:00
Nikita Popov
36a4f58ab9
Remove redundant ce from reflection property_reference
...
The ce is already stored in the main reflection object, no need to
store it twice.
2018-09-28 23:16:10 +02:00
Nikita Popov
570f9f6281
Only store zend_type inside reflection type_reference
...
We don't need the full arg_info and the baggage associated with it.
Storing the type should be safe, as it's part of structures which
are never released during a request (arg_info and in the future
prop_info).
2018-09-28 22:27:14 +02:00
Peter Kokot
c951836721
Remove unused files
...
- ext/simplexml/tests/bug25756_1.xml
- ext/simplexml/tests/bug25756_2.xml
- ext/simplexml/tests/bug25756.xsd
Added via 503d74aa29 and then removed via
9e29f17493
- ext/mysqli/tests/cacert.pem
- ext/mysqli/tests/client-cert.pem
- ext/mysqli/tests/client-key.pem
Added via e9f9f66f2e and then removed via
6d51b7b2e3
- ext/gd/tests/simpletext私はガラスを食べられます.jpg
Added via 3d3f11ede4 and never used
- ext/gd/tests/src.png
Added via cc938b5df0 and never used
- ext/zlib/tests/gzgetss.test
Added via d536ecac5c as a file content of the
ext/zlib/tests/gzgetss.gzbut but never used in tests directly. Removed for
better clarity of zlib tests
- ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2_absolute.wsdl
- ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.wsdl
- ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.wsdl
Added via 1d25fc5c7b and never used
- ext/reflection/tests/exception.inc
Removed via 9f8ba2e8a1
- ext/phar/tests/files/extracted.inc
Removed via 549bf83bd1
- ext/phar/tests/cache_list/files/extracted.inc
Added via 05c3104097 and never used
2018-09-26 12:54:20 +02:00
Nikita Popov
74ade095db
Remove unused "dummy" member in reflection_object
2018-09-25 21:47:16 +02:00
Nikita Popov
45bb95c036
Reformat macros in php_reflection.c
2018-09-25 21:47:14 +02: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
Gabriel Caruso
f72b6c5e19
Use EXPECT instead of EXPECTF when possible
2018-09-16 15:39:18 -03:00
Dmitry Stogov
0fbd2e6a16
Renumber ZEND_ACC_... flags
2018-09-11 17:21:17 +03:00
Dmitry Stogov
37290ad8d2
Use mnemonic names
2018-09-11 14:54:11 +03:00
Dmitry Stogov
034b7ff091
Get rid of ZEND_ACC_IMPLICIT_PUBLIC
2018-09-11 12:26:26 +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
Christoph M. Becker
f94518dca1
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Fix #74454 : Wrong exception being thrown when using ReflectionMethod
2018-09-05 15:11:09 +02:00
Christoph M. Becker
21cd552e1e
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix #74454 : Wrong exception being thrown when using ReflectionMethod
2018-09-05 15:10:27 +02:00
Christoph M. Becker
7a2c9585c4
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix #74454 : Wrong exception being thrown when using ReflectionMethod
2018-09-05 15:07:59 +02:00
Christoph M. Becker
c0a389a927
Fix #74454 : Wrong exception being thrown when using ReflectionMethod
...
If zend_throw_exception_ex() already threw an exception, we should not
throw again.
2018-09-05 15:05:19 +02: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
Peter Kokot
409b5133cc
Change some permissions from 755 to 644
...
This patch syncs file permissions accross the PHP source code files
since these don't need to be executable.
2018-08-28 23:26:49 +02: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
Gabriel Caruso
84b195d9fc
Fix some misspellings
2018-08-12 16:15:45 +02:00
Dmitry Stogov
ab8094c666
Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value.
2018-07-26 12:58:07 +03:00
Peter Kokot
8d3f8ca12a
Remove unused Git attributes ident
...
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.
In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.
This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02: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
67b4c3379a
Uze ZVAL_COPY_DEREF() instead of ZVAL_DEREF() and ZVAL_COPY()
2018-07-09 12:46:46 +03:00
Dmitry Stogov
3780b027dd
Use zval_ptr_dtor() instead of zval_dtor() in internal functions that destroy new created object (This is safer and produces less code)
2018-07-05 14:25:17 +03:00
Dmitry Stogov
b6cc4d2009
Use zval_ptr_dtor() instead of zval_dtor() in internal functions that destroy new created object (This is safer and produces less code)
2018-07-05 11:54:26 +03:00
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
Nikita Popov
23ae6ca405
Fix check for invoking abstract method
2018-07-02 21:33:09 +02:00
Nikita Popov
826e403d2c
Add $ before property name in error message
2018-07-02 21:24:38 +02:00
Nikita Popov
04824aa263
Merge branch 'PHP-7.2'
2018-07-02 18:58:01 +02:00
Nikita Popov
9bbb9e537c
Merge branch 'PHP-7.1' into PHP-7.2
2018-07-02 18:57:25 +02:00
Nikita Popov
c97b8bbf82
Fixed bug #75231
...
The behavior is now consistent with ReflectionMethod.
2018-07-02 18:56:27 +02:00
Nikita Popov
1b66ba17ad
Remove unnecessary explicit argc check
...
Instead specify a default value for the argument, which is more
idiomatic.
2018-07-02 18:29:30 +02:00
Nikita Popov
76f1d98a0c
Remove METHOD_NOTSTATIC checks in reflection
...
PHP does not allow static calls to non-static internal methods
anyway, so these checks are redundant.
2018-07-02 18:26:48 +02:00