Commit graph

328 commits

Author SHA1 Message Date
Nikita Popov
bc2ff4a299 Don't implicitly make closures in static methods static
It makes no sense that you can't write a closure using $this in a
static method, even though you can write one outside a class.

Now only closures that have been marked as static will be considered
to be static.

Fixes bug #65598.
2015-05-06 17:29:05 +02:00
Nikita Popov
d9c2959c27 Fix LSB handling for closures
Closures will now use the called_scope from their instantiation
site. If they are rebound either the class of $this is used or if
no $this is provided the bound scope is used.

With this change the scope for static closures can be changed back
to use EG(scope) rather than EX(called_scope), thus fixing
bug #69568.
2015-05-05 21:14:03 +02:00
Dmitry Stogov
fc80305e48 Cleanup comments and add related tests. 2015-04-23 17:52:05 +03:00
Nikita Popov
018bcc6388 Use temporary debug_info for closures 2015-04-16 15:33:47 +02:00
Dmitry Stogov
1d75953a86 We don't need this protection anymore (now reference counting on closures is accurate). 2015-04-01 13:38:05 +03:00
Dmitry Stogov
acfc31c0f8 Use zend_error_noreturn() for fatal errors 2015-04-01 13:32:23 +03:00
Dmitry Stogov
ed9c8a23ba More accurate reference counting on closures 2015-03-10 23:04:41 +03:00
Dmitry Stogov
a30d328671 Errors converted to exceptions are not "recoverable" anymore. 2015-03-10 10:31:55 +03:00
Dmitry Stogov
1c94ff0595 Implement engine exceptions
RFC: https://wiki.php.net/rfc/engine_exceptions_for_php7

Pending changes regarding naming of BaseException and whether it
should be an interface.
2015-03-09 14:01:32 +01:00
Xinchen Hui
f25419f8e3 Only do this in debug build 2015-02-21 22:44:51 +08:00
Xinchen Hui
865a719a3f Fixed mem issue with internal return type hinting assert 2015-02-21 22:17:17 +08:00
Dmitry Stogov
5f76eed14e don't count op_arrays stored in opcache SHM 2015-02-20 14:59:30 +03:00
Dmitry Stogov
e10e151e9b Merged zend_array and HashTable into the single data structure.
Now each HashTable is also zend_array, so it's refcounted and may be a subject for Copy on Write
zend_array_dup() was changed to allocate and return HashTable, instead of taking preallocated HashTable as argument.
2015-02-13 22:20:39 +03:00
Stanislav Malyshev
b64cafdb9e Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Added test and possible fix for https://bugs.php.net/bug.php?id=67068
2015-01-31 23:17:24 -08:00
Danack
dbc0a80b23 Added test and possible fix for https://bugs.php.net/bug.php?id=67068 2015-01-31 23:13:55 -08:00
Stanislav Malyshev
e8e0481755 Merge branch 'pull-request/994'
* pull-request/994:
  Added test and possible fix for https://bugs.php.net/bug.php?id=67068
2015-01-31 23:12:00 -08:00
Dmitry Stogov
638d0cb753 Merge branch 'typed_returns' of github.com:morrisonlevi/php-src into test
* 'typed_returns' of github.com:morrisonlevi/php-src:
  Implement return types
2015-01-28 06:56:19 +03:00
Levi Morrison
c8576c5a46 Implement return types
RFC is documented here: https://wiki.php.net/rfc/return_types
2015-01-27 11:49:56 -07:00
Xinchen Hui
fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Xinchen Hui
0579e8278d bump year 2015-01-15 23:26:37 +08:00
Xinchen Hui
73c1be2653 Bump year 2015-01-15 23:26:03 +08:00
Danack
1397790560 Added test and possible fix for https://bugs.php.net/bug.php?id=67068 2015-01-13 01:24:19 +00:00
Stanislav Malyshev
b7a7b1a624 trailing whitespace removal 2015-01-10 15:07:38 -08:00
Dmitry Stogov
c42ac09518 Added new API function 'zend_string* zend_string_tolower(zend_string*)'.
It simplifies code and avoids unnecessary allocation and copying if string is already in lower case.
2014-12-24 15:04:51 +03:00
Dmitry Stogov
2646f7bcb9 Don't count variadic argument in zend_func.common.num_args. This allows faster CALL/RETURN code. 2014-12-22 16:44:39 +03:00
Anatol Belski
bdeb220f48 first shot remove TSRMLS_* things 2014-12-13 23:06:14 +01:00
Dmitry Stogov
3893c1fc3d Fixed compilation warnings 2014-12-12 21:57:34 +03:00
Guilherme Blanco
094d409b3d Removed ZEND_ACC_FINAL_CLASS which is unnecessary. This also fixed some currently defined classes as final which were just not being considered as such before. 2014-12-12 17:29:54 +01:00
Dmitry Stogov
5dd427eac2 Use zend_string* for op_array->arg_info[]->name and op_array->arg_info[]->class_name. For internal functions we still use char*. 2014-12-03 16:56:09 +03:00
Nikita Popov
ee5b30fa19 Remove support for classes without class entries
get_class_entry must be non-NULL and return non-NULL.
2014-10-09 13:58:14 +02:00
Dmitry Stogov
bd9a234645 Replaced EG(This) and EX(object) with EX(This).
Internal functions now recieves zend_execute_data as the first argument.
2014-10-03 19:32:46 +04:00
Dmitry Stogov
3bc8a958c5 Fixed useless or duplicated IS_INTERNED() checks 2014-09-19 15:41:01 +04:00
Xinchen Hui
24ab7b53f2 It should be int 2014-08-27 12:14:57 +08:00
Xinchen Hui
8b87534468 Fixed folder mark 2014-08-27 12:13:17 +08:00
Andrea Faulds
7379abba8f Fixed Closure::apply() for int64 2014-08-27 02:05:50 +01:00
Andrea Faulds
17c5e82816 Merge branch 'master' into Closure_apply 2014-08-27 01:53:26 +01:00
Nikita Popov
46b53e815c Add zend_string_equals and zend_string_equals_literal 2014-08-25 22:40:58 +02:00
Anatol Belski
6f9f0bf205 master renames phase 2 2014-08-25 19:28:33 +02:00
Anatol Belski
c3e3c98ec6 master renames phase 1 2014-08-25 19:24:55 +02:00
Andrea Faulds
342265badb Just return, no need for RETURN_NULL() 2014-08-20 00:11:11 +01:00
Andrea Faulds
56e6a45c41 Accuracy 2014-08-18 14:50:05 +01:00
Andrea Faulds
2f40631716 Fixed issues spotted by code review 2014-08-18 14:47:57 +01:00
Andrea Faulds
333a465751 Comment clarification 2014-08-18 00:03:56 +01:00
Andrea Faulds
429bbd7081 Old comment, whitespace 2014-08-17 23:54:23 +01:00
Andrea Faulds
59010bff01 Don't allow unbound scoped closures; make ->call used passed object as scope 2014-08-17 23:47:47 +01:00
Andrea Faulds
3f468cd1c7 Removed unused variable 2014-08-17 20:21:12 +01:00
Andrea Faulds
6d187d53ae Fixed and cleaned up implementaton of Closure::call() for phpng 2014-08-17 20:20:23 +01:00
Andrea Faulds
e35c8ae13e Merge branch 'master' into Closure_apply
Conflicts:
	Zend/zend_closures.c
	Zend/zend_closures.h
	Zend/zend_execute_API.c
	Zend/zend_vm_def.h
2014-08-17 17:20:02 +01:00
Andrea Faulds
85bf8b4ff1 Fixed unbound scoped closure edge cases and added tests for them 2014-07-30 03:21:44 +01:00
Andrea Faulds
f65bdda469 Rename ::apply to ::call for the sake of JS consistency 2014-07-30 01:26:53 +01:00