summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
Commit message (Collapse)AuthorAgeFilesLines
* Improved traits implementation. Now to support __CLASS__ constant in traits ↵Dmitry Stogov2012-01-171-4/+4
| | | | php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.
* - Year++Felipe Pena2012-01-011-1/+1
|
* Fix #60218 (instantiating unknown class leads to memory leak in cli)David Soria Parra2011-11-121-1/+3
|
* Improved ternary operator performance when returning arraysArnaud Le Blanc2011-10-181-0/+1
|
* Fixed ZE specific compile warnings (Bug #55629)Dmitry Stogov2011-09-131-11/+12
|
* - fix build when no zend signal supportPierre Joye2011-09-081-0/+2
|
* Make timeouts work again for shutdown functions.Rasmus Lerdorf2011-09-071-0/+7
| | | | | Fixes the faling lang/045 test
* Since we have fci_cache = &fci_cache_local inside that blockRasmus Lerdorf2011-08-071-1/+1
| | | | | | and fci_cache is then later used outside the block, fci_cache_local can't be block-scoped here
* Zend Signal HandlingIlia Alshanetsky2011-06-221-13/+15
|
* 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 #52940 (call_user_func_array still allows call-time ↵Dmitry Stogov2010-10-011-11/+9
| | | | pass-by-reference). (cataphract@php.net)
* - Improved memory usageDmitry Stogov2010-09-151-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | . zend_function.pass_rest_by_reference is replaced by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags . zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE in zend_function.fn_flags . zend_arg_info.required_num_args removed. it was needed only for internal functions. Now the first arg_info for internal function (which has special meaning) is represented by zend_internal_function_info structure. . zend_op_array.size, size_var, size_literal, current_brk_cont, backpatch_count moved into CG(context), because they are used only during compilation. . zend_op_array.start_op is moved into EG(start_op), because it's used only for 'interactive' execution of single top-level op-array. . zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in zend_op_array.fn_flags. . op_array.vars array is trimmed (reallocated) during pass_two. . zend_class_entry.constants_updated is replaced by ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags . the size of zend_class_entry is reduced by sharing the same memory space by different information for internal and user classes. See zend_class_inttry.info union.
* - use interned strings for auto globalsDmitry Stogov2010-07-081-10/+0
| | | | | - $GLOBALS became a JIT autoglobal, so it's initialized only if used (this may affect opcode caches)
* eliminated unnecessary iterations during request startup/shutdownDmitry Stogov2010-07-061-1/+3
|
* - Fixed bug #51905 (ReflectionParameter fails if default value is an array ↵Felipe Pena2010-05-261-1/+13
| | | | with an access to self::)
* Fixed crash in Zend/tests/unset_cv09.phptDmitry Stogov2010-04-261-2/+2
|
* fix WSAntony Dovgal2010-04-231-1/+1
|
* Use fast class fetch functionDmitry Stogov2010-04-231-0/+2
|
* Implemented Traits for PHP as proposed in the RFC [TRAITS]Stefan Marr2010-04-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # RFC http://wiki.php.net/rfc/horizontalreuse#traits_-_reuse_of_behavior # Ok, here we go, I guess that will result in more discussion, which is fine # by me. But now, the patch is here, and properly archived. # # See below a list of notes to the patch, it also includes a list of # points which should be fixed # # Internals of the Traits Patch # ----------------------------- # # Open TODOs # """""""""" # # - Reflection API # - support for traits for internal classes # - currently destroy_zend_class does not handle that case # # Introduced Structures # """"""""""""""""""""" # # Data structures to encode the composition information specified in the # source: # - zend_trait_method_reference # - zend_trait_precedence # - zend_trait_alias # # Changes # """"""" # # zend_class_entry # - uses NULL terminated lists of pointers for # - trait_aliases # - trait_precedences # - do you prefer an explicit counter? # - the information is only necessary during class composition # but might be interesting for reflection # - did not want to blow up class further with not really necessary length counters # # added keywords # - trait # - insteadof # # Added opcodes # ZEND_ADD_TRAIT # - similar to ZEND_ADD_INTERFACE # - adds the trait to the list of traits of a class, no actual composition done # ZEND_BIND_TRAITS # - emitted in zend_do_end_class_declaration # - concludes the class definition and will initiate the trait composition # when the class definition is encountered during runtime # # Added Flags # ZEND_ACC_TRAIT = 0x120 # ZEND_ACC_IMPLEMENT_TRAITS = 0x400000 # ZEND_FETCH_CLASS_TRAIT = 14 # # zend_vm_execute.h # - not sure whether the handler initialization (ZEND_ADD_TRAIT_SPEC_HANDLER, # ZEND_BIND_TRAITS_SPEC_HANDLER) is correct, maybe it should be more selective # # zend_compile.c # - refactored do_inherit_method_check # split into do_inherit_method_check and do_inheritance_check_on_method # - added helper functions use a '_' as prefix and are not mentioned in the # headers # - _copy_functions # prepare hash-maps of functions which should be merged into a class # here the aliases are handled # - _merge_functions # builds a hash-table of the methods which need to be added to a class # does the conflict detection # - reused php_runkit_function_copy_ctor # - it is not identical with the original code anymore, needed to update it # think I fixed some bugs, not sure whether all have been reported back to runkit # - has to be renamed, left the name for the moment, to make its origin obvious # - here might be optimization potential # - not sure whether everything needs to be copied # - copying the literals might be broken # - added it since the literals array is freed by efree and gave problems # with doubled frees # - all immutable parts of the zend_op array should not be copied # - am not sure which parts are immutable # - and not sure how to avoid doubled frees on the same arrays on shutdown # - _merge_functions_to_class # does the final merging with the target class to handle inherited # and overridden methods # - small helper for NULL terminated lists # zend_init_list, zend_add_to_list # # zend_language_parser.y # - reused class definition for traits # - there should be something with regard to properties # - if they get explicitly defined, it might be worthwhile to # check that there are no collisions with other traits in a composition # (however, I would not introduce elaborate language features to control that # but a notice for such conflicts might be nice to the developers)
* Added a number of small performance tweaks and optimizationsDmitry Stogov2010-04-201-4/+32
| | | | | | | . ZEND_RECV now always has IS_CV as its result . ZEND_CATCH now has to be used only with constant class names . ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order
* Added concept of interned strings. All strings constants known at compile ↵Dmitry Stogov2010-04-201-3/+3
| | | | time are allocated in a single copy and never changed.
* Changed the structure of op_array.opcodes. The constant values are moved ↵Dmitry Stogov2010-04-201-34/+64
| | | | from opcode operands into a separate literal table
* fix #51394 - try harder to find script lineno when exception happensStanislav Malyshev2010-04-011-0/+4
|
* - Fixed bug #50731 (Inconsistent namespaces sent to functions registered ↵Felipe Pena2010-03-031-1/+5
| | | | with spl_autoload_register)
* - Ensure that stderr output are not buffered, portability for testsPierre Joye2010-01-251-0/+4
|
* sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.phpSebastian Bergmann2010-01-051-1/+1
|
* fix regression bug #50394: Reference argument converted to value in __callStanislav Malyshev2009-12-181-0/+1
|
* Fixed unnecessary invokation of setitimer when timeouts have been disabled ↵Dmitry Stogov2009-11-051-1/+1
| | | | (Arvind Srinivasan)
* - WS fix (spaces to tabs)Moriyoshi Koizumi2009-09-151-1/+1
|
* fix crash when unexpectedly passed by-ref parameter is modifiedStanislav Malyshev2009-08-181-0/+6
|
* fix for bug #49000Stanislav Malyshev2009-07-301-0/+7
|
* MFH: Added zend_eval_stringl and made create_function(), etc. binary-safeMatt Wilmas2009-06-051-7/+18
|
* MFH:Matt Wilmas2009-06-041-1/+1
| | | | | | | | | | | | | | | | | | Restored double->long conversion behavior to that of PHP 5.2 (on most platforms) and prior: * Out-of-range numbers overflow/preserve least significant bits (no LONG_MAX/MIN limit) * See bug #42868 (presumably-rare platform with different results in 5.2) * On 32-bit platforms with 64-bit long type, a zend_long64 cast has been added, otherwise it's the same as 5.2 * Use this conversion method everywhere instead of some plain (long) casts Added 'L' parameter parsing specifier to ensure a LONG_MAX/MIN limit: * Essentially what 5.3's new conversion was doing in most cases * Functions with "limit" or "length" type params could be updated to use this, and prevent confusing overflow behavior with huge numbers (*also* in 5.2) - See bug #47854, for example; or even #42868 again # Test updates coming
* Calculate hash value onceDmitry Stogov2009-04-081-4/+7
|
* MFH: Removed extra space from eval stringMatt Wilmas2009-03-191-2/+1
|
* Forgotten includeDmitry Stogov2009-03-181-0/+1
|
* Fixed floating point mathematic speed degradation (Christian)Dmitry Stogov2009-03-181-0/+5
|
* - Fixed typoFelipe Pena2009-03-051-3/+3
|
* - MFH: Fixed bug #47572 (zval_update_constant_ex: Segmentation fault)Felipe Pena2009-03-051-3/+5
|
* Fixed bug #47320 ($php_errormsg out of scope in functions)Dmitry Stogov2009-02-091-8/+8
|
* - MFH Catch exceptions in cli -aMarcus Boerger2009-01-021-2/+2
|
* MFH: Bump copyright year, 3 of 3.Sebastian Bergmann2008-12-311-1/+1
|
* Fixed bug #46409 (__invoke method called outside of object context when ↵Dmitry Stogov2008-11-271-13/+13
| | | | using array_map)
* - Fixed bug #46665 (Triggering autoload with a variable classname causes ↵Felipe Pena2008-11-251-6/+7
| | | | truncated autoload param)
* MFH: Fix #46241 (stacked error_handlers, error_handling in general)Etienne Kneuss2008-11-191-6/+0
|
* make sure the slash is actually thre before reading past itAntony Dovgal2008-11-121-3/+3
|
* Namespace resolution streamlining patchStanislav Malyshev2008-11-111-29/+6
| | | | | [DOC] new resolution rules should be documented soon
* - Fixed Windows buildFelipe Pena2008-11-051-2/+2
|