Dmitry Stogov
c28751c69c
Merge branch 'PHP-8.0'
...
* PHP-8.0:
Fixed bug #80802 : (zend_jit_fetch_indirect_var assert failure with tracing JIT)
2021-03-02 00:01:01 +03:00
Dmitry Stogov
957cb13a49
Fixed bug #80802 : (zend_jit_fetch_indirect_var assert failure with tracing JIT)
2021-03-01 23:57:20 +03:00
Máté Kocsis
4f4c031f62
Generate ext/spl class entries from stubs
...
Closes GH-6709
2021-02-18 13:01:51 +01:00
Nikita Popov
f0b387d1e4
Merge branch 'PHP-8.0'
...
* PHP-8.0:
Fixed bug #80719
2021-02-11 16:14:12 +01:00
Nikita Popov
226395a335
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fixed bug #80719
2021-02-11 16:13:56 +01:00
Nikita Popov
c34c523467
Fixed bug #80719
2021-02-11 16:12:06 +01:00
Nikita Popov
0368dc9f28
Fix proptable canonicalization bypass in ArrayObject
...
When an ArrayObject wraps an object, we should be using the
proptable canonicalilzation rules, which require all keys to be
strings.
2021-01-26 14:05:41 +01:00
Nikita Popov
3e01f5afb1
Replace zend_bool uses with bool
...
We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.
Of course, zend_bool is retained as an alias.
2021-01-15 12:33:06 +01:00
Nikita Popov
aa51785889
Remove SEPARATE_ARG_IF_REF macro
...
The name doesn't correspond to what it does at all, and all the
existing usages appear to be unnecessary.
Usage of this macro can be replaced by ZVAL_DEREF + Z_TRY_ADDREF_P.
2021-01-14 10:53:56 +01:00
Nikita Popov
d8b22c56cf
Fix INDIRECT elements leaked by SPL __serialize implementations
2021-01-12 15:35:19 +01:00
Nikita Popov
8b2b8563ef
Remove some unnecessary zend_delete_global_variable uses
2021-01-08 11:31:31 +01:00
Nikita Popov
bfe7a1168a
Properly validate ArrayObject::asort() argument
2020-10-22 15:20:43 +02:00
Nikita Popov
2c1b5c4365
Support GC for AppendIterator
...
This also requires adding GC support for ArrayIterator internal
iterators.
2020-10-01 16:18:23 +02:00
George Peter Banyard
9affbef0e6
Use normal error in SPL for 'An iterator cannot be used with foreach by reference'
2020-09-15 12:49:59 +02:00
George Peter Banyard
61c299fe9c
Error promotions in SPL
...
Warning to Error promotion and a Notice to Warning promotion to align
with the behaviour specified in the Reclassify Engine Warnings RFC.
Closes GH-6072
2020-09-03 19:27:02 +02:00
Máté Kocsis
f7fbc6333f
Add more precise type info for stubs
...
Closes GH-6005
2020-09-01 16:35:56 +02:00
Nikita Popov
f965e20059
Promote ArrayObject modification during sorting to Error exception
2020-08-28 10:42:14 +02:00
Nikita Popov
c48b745f00
Promote "undefined array key" notice to warning
...
This implements the last remaining part of the
https://wiki.php.net/rfc/engine_warnings RFC.
Closes GH-5927.
2020-08-03 14:40:50 +02:00
Nikita Popov
7a4b594c6f
Convert SPL illegal offset type into TypeError
...
Make this consistent with the corresponding engine behavior.
Also adjust the messages to match.
2020-08-03 11:17:49 +02:00
Nikita Popov
d65d3f5298
Fix bug #79108
...
Don't expose references in debug_backtrace() or exception traces.
This is regardless of whether the argument is by-reference or not.
As a side-effect of this change, exception traces may now acquire
the interior value of a reference, which may be unexpected for
some internal functions. This is what necessitated the change in
the spl_array sort implementation.
2020-07-24 12:23:34 +02:00
Nikita Popov
1cba736470
Throw correct exception from ArrayObject sort methods
...
Let normal zpp throw ArgumentCountErrors.
2020-07-17 10:46:11 +02:00
Máté Kocsis
d30cd7d7e7
Review the usage of apostrophes in error messages
...
Closes GH-5590
2020-07-10 21:05:28 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
...
Closes GH-5758
2020-07-06 21:13:34 +02:00
Nikita Popov
312201dce4
Add get_gc handle for object iterators
...
Optional handler with the same semantics as the object handler.
2020-07-01 15:17:22 +02:00
Nikita Popov
15846ff115
Add ZVAL_OBJ_COPY macro
...
For the common ZVAL_OBJ + GC_ADDREF pattern.
This mirrors the existing ZVAL_STR_COPY API.
2020-06-17 16:36:56 +02:00
Máté Kocsis
d7f7080bb5
Generate methods entries from stubs for ext/spl
...
Closes GH-5458
2020-04-25 23:54:56 +02:00
Alex Dowad
c36b9e93fa
Remove unneeded prototype for spl_array_get_iterator
2020-04-23 10:05:21 +02:00
Nikita Popov
3d5db42ca5
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix bug #67369 ArrayObject serializatino drops the iterator class
2020-04-20 11:56:35 +02:00
Alex Dowad
0d11d37357
Fix bug #67369 ArrayObject serializatino drops the iterator class
...
When ArrayObject is round-tripped through serialize() and unserialize(),
it forgets any iterator class name which was set using ::setIteratorClass().
Fix that.
2020-04-20 11:55:18 +02:00
Christoph M. Becker
9809713844
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #69264 : __debugInfo() ignored while extending SPL classes
2020-04-06 12:04:12 +02:00
Christoph M. Becker
22a077b642
Fix #69264 : __debugInfo() ignored while extending SPL classes
...
We actually implement `::__debugInfo()` and drop the `get_debug_info()`
handlers of all relevant SPL classes. This is cleaner and gives more
flexibility regarding overriding the functionality in descendant
classes.
2020-04-06 12:01:29 +02:00
Máté Kocsis
d2b902f174
Add some stubs for SPL
...
Closes GH-5245
2020-03-10 11:41:48 +01:00
Máté Kocsis
b7d2882fee
Use zend_parse_parameters_none() instead of zend_parse_parameters_none_throw()
2020-01-03 13:22:39 +01:00
Máté Kocsis
01a50778d1
Use RETURN_THROWS() after zend_throw_exception() in most of the extensions
2020-01-02 10:56:18 +01:00
Máté Kocsis
817605917b
Use RETURN_THROWS() during ZPP in the remaining extensions
...
In reflection, sodium, and SPL
2019-12-31 16:33:02 +01:00
Máté Kocsis
14bdb0cfc7
Fix consistency issues with array accesses warnings/exceptions
...
* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "resource used as offset" warning for isset() as well.
* Make array_key_exists() behavior with regard to different key
types consistent with isset() and normal array accesses. All key
types now use the usual coercions and array/object keys throw
TypeError.
Closes GH-4887.
2019-11-06 12:56:47 +01:00
Nikita Popov
c46b2ed677
Remove support for array_key_exists() with objects
2019-11-04 13:10:03 +01:00
Christoph M. Becker
4008704f62
zend_parse_parameters_throw() is obsolete
...
Since `zend_parse_parameters()` throws now, there is no reason to
explicitly call `zend_parse_parameters_throw()` anymore, and since both
have actually the same implementation, we redefine the latter as macro.
2019-11-01 16:47:15 +01:00
Dmitry Stogov
b02b81299c
Comparison cleanup:
...
- introduce zend_compare() that returns -1,0,1 dirctly (without intermediate zval)
- remove compare_objects() object handler, and keep only compare() handler
2019-10-07 17:57:49 +03:00
Gabriel Caruso
5d6e923d46
Remove mention of PHP major version in Copyright headers
...
Closes GH-4732.
2019-09-25 14:51:43 +02:00
Nikita Popov
deceafbe63
Merge branch 'PHP-7.4'
2019-08-15 10:40:45 +02:00
Nikita Popov
34885408db
Fixed bug #78409
...
This removes an incorrect optimization (I think this code used to be
necessary to properly handle references in the Serializable based
implementation, but now this code just avoids an array duplication
in a way that is not sound).
2019-08-15 10:40:28 +02:00
Dmitry Stogov
b2cdde0826
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
2019-05-28 20:19:15 +03:00
Dmitry Stogov
83804519df
Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
2019-05-28 20:10:02 +03:00
Nikita Popov
f17931a8bb
Merge branch 'PHP-7.4'
2019-05-22 09:06:23 +02:00
Jaroslav Hanslík
d6c0c5ef8e
Fixed some arg infos to match documentation
2019-05-22 09:05:32 +02:00
Nikita Popov
b8e5c07183
Merge branch 'PHP-7.4'
2019-04-15 13:22:00 +02:00
Nikita Popov
5fc71c7dba
Correctly destroy reference in ArrayObject sort
...
The reference may be captured in an exception backtrace, in which
case the refcount may be more than one.
2019-04-15 13:21:45 +02:00
Nikita Popov
03783bb55d
Merge branch 'PHP-7.4'
2019-04-10 09:40:06 +02:00
Nikita Popov
e2ea0f105c
Fix bug #77866 : Port Serializable SPL classes to use __unserialize()
...
Payloads created using Serializable are still supported.
2019-04-10 09:36:39 +02:00