summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'PHP-5.5' into PHP-5.6Anatol Belski2014-12-121-118/+41
|\ | | | | | | | | | | | | | | * PHP-5.5: Fixed bug #68583 Crash in timeout thread Conflicts: Zend/zend_execute.h
| * Fixed bug #68583 Crash in timeout threadAnatol Belski2014-12-121-118/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the GUI element used for execution timeout handling on Windows. Instead a timer queue technique is used, which is indeed a thread pool. A timer queue timer is a lightweight object handled but that thread pool and the timer thread spends most of the time sleeping and waiting for an alert. Please note also that this introduces neither binary nor source breach. The custom timeout thread functions are deleted, however they was not exported throug DLL, so couldn't be used by any external code. As well they couldn't be used anywhere in the core except in executor api, because those custom timeout thread functions they used to operate on static variables which would be overwritten (and that would blow). So instead a relatively modern technique is used for the timeout handling. It's still not perfect because the executor still has to check EX(timed_out). This can be a topic for an improvement in master. But brobably can be tricky as currently it seems to be not possible to signal an individual thread. Also note another issue that static variables aren't thread safe, but the current timer implementation is.
| * fix incompatible pointer typesAnatol Belski2014-11-171-2/+6
| |
* | fix incompatible pointer typesAnatol Belski2014-11-171-2/+6
| |
* | Merge branch 'PHP-5.5' into PHP-5.6Xinchen Hui2014-11-101-7/+0
|\ \ | |/
| * Fixed bug #68370 ("unset($this)" can make the program crash)Xinchen Hui2014-11-101-7/+0
| |
* | Merge branch 'PHP-5.5' into PHP-5.6Stanislav Malyshev2014-09-011-2/+2
|\ \ | |/ | | | | | | | | | | | | * PHP-5.5: update NEWS Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036) Fix typo from commit 32314f6b6 Fix destruction order in zend_shutdown (bug #65463, #66036)
| * Merge branch 'PHP-5.4' into PHP-5.5Stanislav Malyshev2014-09-011-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | * PHP-5.4: update NEWS Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036) Fix typo from commit 32314f6b6 Fix destruction order in zend_shutdown (bug #65463, #66036)
| | * Merge branch 'pull-request/770' into PHP-5.4Stanislav Malyshev2014-09-011-2/+2
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | * pull-request/770: Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036) Fix typo from commit 32314f6b6 Fix destruction order in zend_shutdown (bug #65463, #66036)
| | | * Fix typo from commit 32314f6b6Keyur Govande2014-08-141-1/+1
| | | |
| | | * Fix destruction order in zend_shutdown (bug #65463, #66036)Keyur Govande2014-08-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If Apache or a similar SAPI receives a signal during PHP processing it calls zend_shutdown() without calling shutdown_executor(). #65463: If a module like Gearman or Memcached is loaded, in the unfixed version it is unloaded by zend_destroy_modules() before the CG(CLASS_TABLE) is destructed. When CG(CLASS_TABLE) is destructed, any pointers to methods (specifically around destruction) in the unloaded module's .so are now dangling and the process segfaults. #66036: Any subclasses of an internal class like ArrayObject need to be destructed in order: subclass first and then the internal class. In the unfixed version zend_shutdown() clears the CG(CLASS_TABLE) from the head of the list onwards, so internal classes are destructed first and user-defined classes last. Internal classes are alloc/deallocated with malloc/free while user-defined classes with emalloc/efree. If there's shared data between them then efree() could be called instead of free() leading to a seg-fault.
| | * | Bump yearXinchen Hui2014-01-031-1/+1
| | | |
* | | | Merge branch 'PHP-5.5' into PHP-5.6Xinchen Hui2014-06-101-2/+0
|\ \ \ \ | |/ / / | | | | | | | | | | | | Conflicts: Zend/zend_execute_API.c
| * | | Remove unused included fileXinchen Hui2014-06-101-2/+0
| | | |
| * | | Bump yearXinchen Hui2014-01-031-1/+1
| | | |
* | | | Removed useless void* parameter and replaced with zend_bool on ↵Bob Weinand2014-04-111-8/+7
| | | | | | | | | | | | | | | | zval_update_constant* functions
* | | | Fix bug #66015 by reverting "Removed operations on constant arrays."Bob Weinand2014-04-111-118/+1
| | | |
* | | | Bump yearXinchen Hui2014-01-031-1/+1
| | | |
* | | | Fixed bug #66252 (Problems in AST evaluation invalidating valid parent:: ↵Dmitry Stogov2013-12-101-2/+2
| | | | | | | | | | | | | | | | reference. Constant expessions have to be evaluated in context of defining class).
* | | | Merge branch 'PHP-5.5' into PHP-5.6Dmitry Stogov2013-11-291-0/+8
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | * PHP-5.5: Added validation of class names in the autoload process Conflicts: NEWS
| * | | Merge branch 'PHP-5.4' into PHP-5.5Dmitry Stogov2013-11-291-0/+8
| |\ \ \ | | |/ / | | | | | | | | | | | | * PHP-5.4: Added validation of class names in the autoload process
| | * | Added validation of class names in the autoload processDmitry Stogov2013-11-291-0/+8
| | | |
* | | | Constant expressions refactoringDmitry Stogov2013-11-061-173/+168
| | | |
* | | | converted several switches to ifs and made more opcache friendlyBob Weinand2013-11-011-4/+3
| | | |
* | | | Fatal error about self referencing constants fixedBob Weinand2013-10-311-2/+0
| | | |
* | | | Fixed mem leaks, added tests and ternary operatorBob Weinand2013-10-311-1/+1
| | | |
* | | | Working commit for constant scalar expressions (with constants).Bob Weinand2013-10-311-157/+177
| | | | | | | | | | | | | | | | Tests will follow.
* | | | Save a TSRMLS_FETCH() for zval_ptr_dtor in executorNikita Popov2013-09-141-1/+2
| | | | | | | | | | | | | | | | This gives me about 9% improvement on Zend/bench.php for a zts build.
* | | | Provide more macros for handling of interned stringsNikita Popov2013-09-131-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * str_erealloc behaves like erealloc for normal strings, but will use emalloc+memcpy for interned strings. * str_estrndup behaves like estrndup for normal strings, but will not copy interned strings. * str_strndup behaves like zend_strndup for normal strings, but will not copy interned strings. * str_efree_rel behaves like efree_rel for normal strings, but will not free interned strings. * str_hash will return INTERNED_HASH for interned strings and compute it using zend_hash_func for normal strings.
* | | | Always pass return_value_ptr to internal functionsNikita Popov2013-08-311-2/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previous some places passed return_value_ptr only if the function returned by reference. Now return_value_ptr is always set, even for functions returning by-value. This allows you to return zvals without copying their contents. For this purpose two new macros RETVAL_ZVAL_FAST and RETURN_ZVAL_FAST are added: RETVAL_ZVAL_FAST(zv); /* Analog to RETVAL_ZVAL(zv, 1, 0) */ RETURN_ZVAL_FAST(zv); /* Analog to RETURN_ZVAL(zv, 1, 0) */ These macros behave similarly to the non-FAST versions with copy=1 and dtor=0, with the difference that the FAST versions will try return the zval without copying by utilizing return_value_ptr.
* | | Merge branch 'PHP-5.4' into PHP-5.5Stanislav Malyshev2013-08-041-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | * PHP-5.4: non living code related typo fixes Conflicts: Zend/zend_compile.c
| * | non living code related typo fixesVeres Lajos2013-08-041-1/+1
| | |
* | | Merge branch 'PHP-5.4' into PHP-5.5Xinchen Hui2013-06-051-4/+2
|\ \ \ | |/ /
| * | Merge branch 'PHP-5.3' into PHP-5.4Xinchen Hui2013-06-051-4/+2
| |\ \
| | * | Fixed bug #64960 (Segfault in gc_zval_possible_root)Xinchen Hui2013-06-051-4/+2
| | | |
| | * | Happy New YearXinchen Hui2013-01-011-1/+1
| | | |
| | * | Typo when merging from trunkXinchen Hui2012-03-111-1/+1
| | | |
| | * | Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks ↵Xinchen Hui2012-03-111-1/+1
| | | | | | | | | | | | | | | | / crashes)
| | * | - Year++Felipe Pena2012-01-011-1/+1
| | | |
| | * | Fixed bug #60138 (GC crash with referenced array in RecursiveArrayIterator)Dmitry Stogov2011-11-181-4/+5
| | | |
| | * | Fixed bug #54367 (Use of closure causes problem in ArrayAccess)Dmitry Stogov2011-05-111-9/+11
| | | |
| | * | Fixed bug #54268 (Double free when destroy_zend_class fails)Dmitry Stogov2011-04-151-0/+2
| | | |
| | * | - Year++Felipe Pena2011-01-011-1/+1
| | | |
| | * | Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF)Dmitry Stogov2010-10-131-1/+2
| | | |
| | * | - Fixed bug #51905 (ReflectionParameter fails if default value is an array ↵Felipe Pena2010-05-261-1/+13
| | | | | | | | | | | | | | | | with an access to self::)
| | * | fix #51394 - try harder to find script lineno when exception happensStanislav Malyshev2010-04-011-0/+4
| | | |
* | | | Merge branch 'PHP-5.4' into PHP-5.5Dmitry Stogov2013-03-281-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PHP-5.4: Fixed bug #64529 (Ran out of opcode space) Conflicts: NEWS Zend/zend_execute_API.c Zend/zend_language_scanner.c Zend/zend_language_scanner_defs.h
| * | | Fixed bug #64529 (Ran out of opcode space)Dmitry Stogov2013-03-281-1/+1
| | |/ | |/|
| * | Happy New YearXinchen Hui2013-01-011-1/+1
| | |
| * | Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks ↵Xinchen Hui2012-03-111-1/+1
| | | | | | | | | | | | / crashes)