Sammy Kaye Powers
478f119ab9
Update copyright headers to 2017
2017-01-04 11:14:55 -06:00
Stanislav Malyshev
f42cbd749c
Fix bug #73147 : Use After Free in PHP7 unserialize()
...
(cherry picked from commit 0e6fe3a4c9
)
2016-10-12 17:51:15 +02:00
Andrea Faulds
d690014bf3
Remove zpp fallback code (always use Fast ZPP)
...
Squashed commit of the following:
commit 3e27fbb3d2
Author: Andrea Faulds <ajf@ajf.me>
Date: Sun Sep 11 19:14:37 2016 +0100
Keep dummy FAST_ZPP macro for compatibility
commit 8a7cfd00de
Author: Andrea Faulds <ajf@ajf.me>
Date: Mon Sep 5 22:36:03 2016 +0100
Remove FAST_ZPP macro and plain zpp fallback code
2016-09-11 22:44:46 +01:00
Joe Watkins
a17e4187e7
correct wording
2016-05-04 17:04:38 +01:00
Xinchen Hui
97a9470d97
bump year which is missed in rev 49493a2
2016-01-02 17:56:11 +08:00
Xinchen Hui
0495bf5650
Revert "fix typos "paramer" -> "parameters""
...
ABI BC break
This reverts commit 6ac12f1337
.
2015-12-08 10:52:50 +08:00
Márcio Almada
6ac12f1337
fix typos "paramer" -> "parameters"
2015-12-07 14:48:26 +08:00
Bob Weinand
95dbe1d03e
Short-circuit zend_parse_parameters_none() so that expensive zpp() call never happens in non-exceptional case
2015-09-20 02:43:22 +02:00
Dmitry Stogov
37f0c6b5cb
Add myself into list of authors of the most refactored files.
2015-08-31 11:38:16 +03:00
Dmitry Stogov
71af54e5f6
Mark error and exception functions as "cold" (Matt's idea)
2015-08-19 14:40:56 +03:00
Julien Pauli
9a138b47c9
Removed unused code
2015-08-18 14:33:04 +02:00
Anatol Belski
ffa341de59
add macro to access globals as whole
2015-07-30 09:05:08 +02:00
Anatol Belski
43cdfd9a82
add unified globals accessor macro
2015-07-29 10:36:29 +02:00
Dmitry Stogov
4a2e40bb86
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 04:05:24 +03:00
Dmitry Stogov
4bd22cf1c1
Improved zend_string API (Francois Laupretre)
...
Squashed commit of the following:
commit d96eab8d79
Author: Francois Laupretre <francois@tekwire.net>
Date: Fri Jun 26 01:23:31 2015 +0200
Use the new 'ZSTR' macros in the rest of the code.
Does not change anything to the generated code (thanks to compat macros) but cleaner.
commit b352643910
Author: Francois Laupretre <francois@tekwire.net>
Date: Thu Jun 25 13:45:06 2015 +0200
Improve zend_string API
Add missing methods
2015-06-29 16:44:54 +03:00
Bob Weinand
7c2a0157c7
Cache the class_name typehint key in arg_info
...
This leads to up to 2% improvement on one tested real world application by not having to always recalculate the lowercased string and its hash
2015-06-12 17:26:53 +02:00
Dmitry Stogov
8e10e8f921
Avoid zval duplication in ZVAL_ZVAL() macro (it was necessary only in few places).
...
Switch from ZVAL_ZVAL() to simpler macros where possible (it makes sense to review remaining places)
2015-06-12 12:33:23 +03:00
Remi Collet
a861019b7f
Add consistency check in FAST_ZPP call
...
So ensure Z_PARAM_OPTIONAL is correctly call at the right place
Only in DEBUG build
Will raise 'Assertion `_i > _min_num_args || _optional==0' failed.'
or 'Assertion `_i <= _min_num_args || _optional==1' failed.'
Thus will allow to detect bad code early.
2015-05-19 10:54:10 +02:00
Dmitry Stogov
b3d053b036
Eliminated useless check in FAST_ZPP (this also fixed few wrong -Wmaybe-uninitialized compilation warnings) (Remi)
2015-05-19 11:06:01 +03:00
Dmitry Stogov
70c86732cb
Use zend_string to represent pdo_column_data.name and avoid duplication.
2015-05-05 16:19:51 +03:00
Jin Hu
1f28da0225
Added RETURN_ARR and RETVAL_ARR macros
2015-04-08 00:33:11 +08:00
Nikita Popov
122d759618
Always throw TypeException on throwing zpp failures
...
Introduces a ZEND_PARSE_PARAMS_THROW flag for zpp, which forces to
report FAILURE errors using a TypeException instead of a Warning,
like it would happen in strict mode.
Adds a zend_parse_parameters_throw() convenience function, which
invokes zpp with this flag.
Converts all cases I could identify, where we currently have
throwing zpp usage in constructors and replaces them with this API.
Error handling is still replaced to EH_THROW in some cases to handle
other, domain-specific errors in constructors.
2015-04-06 11:27:34 +02:00
Dmitry Stogov
ea09a9fa32
Convert fatal errors into EngineExceptions
...
Make zval_update_constant_ex(), zval_update_constant(), zend_update_class_constants() and zend_ast_evaluate() return SUCCESS or FAILURE.
2015-04-02 02:05:25 +03:00
Nikita Popov
8d00385871
Reclassify E_STRICT notices
...
Per RFC https://wiki.php.net/rfc/reclassify_e_strict
While reviewing this, found that there are still three E_STRICTs
left in libraries - need to discuss those.
2015-04-01 11:17:55 +02:00
Dmitry Stogov
1018f462d8
Patch improvement:
...
Removed the corresponding core code.
Fixed ext/com_dotnet and ext/date.
Refactored ext/intl changes.
Improved ext/fileinfo and ext/pdo changes.
Fixed tests.
2015-03-30 18:53:38 +03:00
Kalle Sommer Nielsen
02be73b5fa
Constness to zend_get_object_type(), thanks Michael!
2015-03-25 07:01:04 +01:00
Kalle Sommer Nielsen
927d53fda4
Change "Cannot redeclare class X" into "Cannot redeclare class/interface/trait X", meaning that the following:
...
C:\> php -r "trait A { } trait A { }"
Will now properly print "Cannot redeclare trait A" instead of "Cannot redeclare class A" to make error messages a tiny bit clearer. Admittedly, a better solution can most likely be made by actually telling what the colliding object is a type of.
Internally this adds a new function:
zend_get_object_type()
2015-03-25 06:31:11 +01:00
Dmitry Stogov
550b07ae1b
cleanup
2015-03-25 01:57:05 +03:00
Nikita Popov
ccfd53886f
Revert "Use E_ERROR | E_EXCEPTION in FAST_ZPP mode too"
...
This reverts commit d4da7c20d2
.
The argument passed to this function refers to the weak mode
severity, strict mode will get an exception in any case.
2015-03-22 09:17:42 +01:00
Bob Weinand
d4da7c20d2
Use E_ERROR | E_EXCEPTION in FAST_ZPP mode too
2015-03-22 00:17:33 +01:00
Dmitry Stogov
35f9b90bb8
ZPP changed to lazely check for "strict/weak" only if it's really necessary.
...
Cleanup.
2015-03-20 23:18:52 +03:00
Dmitry Stogov
054591ab9a
Imroved ZPP rules (condititins reoredered to prevent duplicate checks)
2015-03-20 17:27:03 +03:00
Dmitry Stogov
5935612666
Improved type hinting:
...
EX_PREV_USES_STRICT_TYPES() and family changed/renamed to fit with other macros
Optimized zend_verify_internal_arg_type() and family (they don't need "strict" argument anymore)
Standerd ZPP is called from VM only for weak type check or strict exception (int -> double)
Fixed ZEND_RECV_VARIADIC
Fixed ZEND_STRLEN
TODO: should we accept IS_NULL for non-nullable arguments?
2015-03-20 16:04:04 +03:00
Anthony Ferrara
7044f9c6df
Refactor as to not use call info, but add the flag to the op_array.
2015-03-19 13:30:11 -04:00
Anthony Ferrara
0ef80ac351
Fix severity issues with callbacks, start work porting ZEND_STRLEN opcode to work with strict mode, more refactoring to come
2015-03-19 12:26:34 -04:00
Anthony Ferrara
579e7fa457
Style cleanup, as well as fixing bug with missing argument for WRONG_PARAM_COUNT_WITH_RETVAL
2015-03-18 15:45:16 -04:00
Anthony Ferrara
8be4266f6a
Clean up API renames for zend_wrong_param_count to maintain BC, introducing a zend_wrong_param_count_ex() function when you know strict value
2015-03-18 15:42:49 -04:00
Anthony Ferrara
d22bfb8aa6
Merge in master, fix merge conflicts and update patch to support exceptions everywhere
2015-03-18 10:50:11 -04:00
Dmitry Stogov
8633685675
Use specialized macro for string zval creation
2015-03-12 16:53:51 +03:00
Rouven Weßling
bb0504534d
Add ZEND_ARG_CALLABLE_INFO to allow internal function to type hint against callable
2015-03-08 23:00:13 +08:00
Anthony Ferrara
9109e48749
Merge in master
2015-02-18 10:35:39 -05:00
Anthony Ferrara
00b3e77ead
Move declare() to the top of the file only, and allow int->float generalization
2015-02-18 10:26:29 -05:00
Anatol Belski
07fdc1c78b
fix data types
2015-02-12 18:39:40 +01:00
Andrea Faulds
44ed070a9a
Fix Gd usages of ZEND_WRONG_PARAM_COUNT, add usage note
2015-02-10 15:48:09 +00:00
Andrea Faulds
86b0685f55
Prefix zend_wrong_param_count with _ to discourage use
2015-02-10 15:48:07 +00:00
Andrea Faulds
fe663cc404
Partial ZPP strictness implementation
2015-02-10 15:48:06 +00:00
Xinchen Hui
a3379d6691
Padding
2015-02-05 16:11:44 +08:00
Reeze Xia
bff4c47fa7
Implemented internal function return types
2015-02-05 01:04:54 +08:00
Dmitry Stogov
3e31838d19
zend_read_property() has to provide a holder for return value.
...
Previously it was possible that zend_read_property() returned pointer to zval allocated on stack.
2015-01-22 11:50:42 +03:00
Rasmus Lerdorf
6c9621c937
typo
2015-01-17 11:38:40 -08:00