1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 15:08:16 +02:00
Commit Graph

874 Commits

Author SHA1 Message Date
Nikita Popov 7b16205f8b Remove some unnecessary duplications 2017-10-30 22:48:20 +01:00
Dmitry Stogov fcc08ce19f Prevent reference-counting on persistent zvals (internal constants, default properties and constants of internal classes).
New macro ZVAL_COPY_OR_DUP() is used perform duplication, if necessary.
This should eliminate related race-coditions in ZTS build and prevent reference-counting bugs after unclean shutdown.
2017-10-30 23:13:10 +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 9cf87aa196 Avoid HashTable allocations for empty arrays (using zend_empty_array). 2017-10-24 17:27:31 +03:00
Dmitry Stogov ef5ea48741 Always use IS_CONSTANT_AST (IS_CONSTANT is removed). 2017-10-10 10:11:05 +03:00
Dmitry Stogov e70618aff6 Changed the way VM accesses constant operands in 64-bit builds. 2017-10-04 16:53:01 +03:00
Sammy Kaye Powers c900764e64 Fix type-o in ext/reflection comment 💬 2017-09-13 14:11:57 -05:00
Derick Rethans 21493e0824 Merge branch 'PHP-7.1' into PHP-7.2 2017-08-16 11:14:53 +01:00
Derick Rethans 9a72a7c58f Merge branch 'PHP-7.0' into PHP-7.1 2017-08-16 11:14:47 +01:00
Derick Rethans 5d2c303438 Fixed stupid test 2017-08-16 11:14:41 +01:00
Xinchen Hui 262aeb8ae1 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed test
2017-07-27 12:50:41 +08:00
Xinchen Hui 0ddda0dcb7 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed test
2017-07-27 12:50:28 +08:00
Xinchen Hui 9fcfe52d03 Fixed test 2017-07-27 12:50:17 +08:00
Xinchen Hui afc2be8fc8 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Update NEWS
  Fixed bug #74949 (null pointer dereference in _function_string)
2017-07-27 11:24:53 +08:00
Xinchen Hui 84a18c4782 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #74949 (null pointer dereference in _function_string)
2017-07-27 11:23:27 +08:00
Xinchen Hui e36c04ef48 Fixed bug #74949 (null pointer dereference in _function_string) 2017-07-27 11:23:06 +08:00
Tom Van Looy 04fb3f28ff Remove superfluous semicolons 2017-06-26 00:23:25 +02:00
Michał Brzuchalski 8e10c9d373 Implement object type annotation
RFC: https://wiki.php.net/rfc/object-typehint
2017-06-25 21:49:41 +02:00
Remi Collet fdfc5c1b3d code de-duplication in ReflectionType::__toString and ReflectionNamedType::getName
This code duplication introduce an inconsistency in displayed type name
- bool (reflection) vs boolean
- int (reflection) vs integer

And reflection already use zend_get_type_by_const in other methods...

Inconsistenty is kept for BC reason.
Could be fixed in 8.0
2017-06-15 15:38:03 +02:00
Sara Golemon d1cfd87fbe Allow ReflectionClass::isIterable() to return true for Traversables
Current behavior is essentially "Is an INTERNAL iterable class".
This change allows isIterable() to return true for userspace classes as well.
2017-05-31 14:23:57 -07:00
Sara Golemon c1500f8519 Rename ReflectionClass::isIterateable() to isIterable()
Iterateable is not a word.
Add the correct spelling, but keep the original one around
for BC purposes.

Perhaps we can add ZEND_ACC_DEPRECATED at some later date
and even remove it from PHP 8.
2017-05-31 12:08:07 -07:00
Xinchen Hui bfd35512bb Merge branch 'PHP-7.1'
* PHP-7.1:
  Update NEWS
  Fixed bug #74673 (Segfault when cast Reflection object to string with undefined constant)

Conflicts:
	ext/reflection/php_reflection.c
2017-05-31 13:12:24 +08:00
Xinchen Hui 9064dca58b Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #74673 (Segfault when cast Reflection object to string with undefined constant)

Conflicts:
	ext/reflection/php_reflection.c
2017-05-31 13:08:26 +08:00
Xinchen Hui 9c5717d0de Fixed bug #74673 (Segfault when cast Reflection object to string with undefined constant) 2017-05-31 12:39:26 +08:00
Andrea Faulds 9891b9ede2 Test ReflectionType support of iterable 2017-04-29 16:12:46 +01:00
Andrea Faulds 753ae9b7db Test ReflectionType support of iterable 2017-04-29 14:37:35 +01:00
Nikita Popov d5c6fcc3ba Don't leak internal flags in reflection
If someone complains, we may re-expose specific flags while also
adding corresponding class constants for them.
2017-04-22 16:44:20 +02:00
Nikita Popov 0710eee043 Fix reflection test after flag removal
Reflection is leaking internal flags...
2017-04-22 16:31:28 +02:00
Nikita Popov 134d0b33a3 Merge branch 'PHP-7.0' into PHP-7.1 2017-02-12 22:03:31 +01:00
Nikita Popov eb1373e509 Revert "Fixed bug #74035"
This reverts commit 9ffc6ca62f.
2017-02-12 22:02:39 +01:00
Julien Pauli ed4216c955 ReflectionGenerator now sends ReflectionException as expected 2017-02-07 17:47:08 +01:00
Nikita Popov 162aa1a5fc Deprecate __autoload() 2017-02-03 18:52:57 +01:00
Nikita Popov 6303dd1ea4 Merge branch 'PHP-7.1' 2017-02-03 18:30:40 +01:00
Nikita Popov 57817eb72f Merge branch 'PHP-7.0' into PHP-7.1 2017-02-03 18:30:32 +01:00
andrewnester 9ffc6ca62f Fixed bug #74035 2017-02-03 18:29:39 +01:00
Nikita Popov fb008bf60e Remove obsolete version checks from tests 2017-02-02 00:58:04 +01:00
Nikita Popov a8d901a80c Remove zend_version() checks from tests 2017-01-30 22:50:25 +01:00
Joe Watkins 7c17936c70 Merge branch 'PHP-7.1'
* PHP-7.1:
  Fix ce comparison
2017-01-18 05:06:59 +00:00
Joe Watkins 43612e9593 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fix ce comparison
2017-01-18 05:06:07 +00:00
Thomas Punt a22f181736 Fix ce comparison 2017-01-18 05:05:53 +00:00
Dmitry Stogov 141d1ba980 Introduced "zend_type" - an abstraction for type-hinting representation. 2017-01-13 11:37:46 +03:00
Nikita Popov a1145c0c40 Fix memory error in reflection export
Also simplify code while at it ... no point in going through a
smart_str for a single printf.
2017-01-12 21:50:53 +01:00
Sammy Kaye Powers dac6c639bb Update copyright headers to 2017 2017-01-04 11:23:42 -06:00
Sammy Kaye Powers 478f119ab9 Update copyright headers to 2017 2017-01-04 11:14:55 -06:00
Sammy Kaye Powers 9e29f841ce Update copyright headers to 2017 2017-01-02 09:30:12 -06:00
Nikita Popov f3f594a47d Switch reflection to use smart_str
Instead of yet-another-smart-string-implementation.

Expand the smart_str API by:
 * smart_str_extract() which gets a finalized zend_string* from a
   smart_str, including insertion of the zero byte and handling of
   the empty string case. This should be preferred over using
   smart_str_0() in conjunction with str.s.
 * smart_str_get_len() which gets the length of the smart_str with
   handling of the empty string case.
2017-01-01 21:28:21 +01:00
Barbu Paul - Gheorghe e52d2b88e4 Reduce redundant storage of required number of parameters to required flag
The required field, until now, stored how many required parameters
the function, it belongs to, has. I think this is rather problematic
because it's a feature of the function to know how many required
parameters it has, not of the parameter itself. The parameter should
only say if it's required or optional (among other unrelated things).

Also storing the function's number of required parameters in every
parameter was redundant since the _zend_function structure already
has that information. And storing the same value (number of required
parameters) across multiple variables is inefficient and could lead
to inconsistencies.
2016-12-26 10:39:19 -08:00
Nikita Popov 509f26c4bb Drop some dead code in ext/reflection 2016-12-21 21:19:19 +01:00
Nikita Popov ca682952e7 Merge branch 'PHP-7.1' 2016-12-18 17:11:01 +01:00
Nikita Popov 4ef4e34c2e Merge branch 'PHP-7.0' into PHP-7.1 2016-12-18 17:10:54 +01:00