Commit Graph

216 Commits

Author SHA1 Message Date
Stanislav Malyshev
d03900dc92 fix bug #61782 - __clone/__destruct do not match other methods when checking access controls 2012-05-14 11:03:21 -07:00
Felipe Pena
8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Xinchen Hui
c1d5a5d7ef Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.
2011-12-19 16:48:18 +00:00
Xinchen Hui
4a0c2b43f5 Revert previous bad fix, introduce memory leak 2011-12-19 12:00:09 +00:00
Xinchen Hui
5256e7410e Fixed bug #60558 (Invalid read and writes) 2011-12-19 09:58:29 +00:00
Xinchen Hui
ac2a2fd196 Reduce memory usage 2011-12-17 03:57:01 +00:00
Xinchen Hui
707f658c33 Fixed bug #60536 (Traits Segfault)
# this is a tough one, I think I should explain
# Zend use zend_object->properties_table both as zval ** and zval ***
# if a zend_object->properties is not initialized, the properties_table is zval **
# while in rebuild_object_properties, zend will store the zval ** to zend_object->properties
# then stash the zval ***(ie, zobj->properties_table[0] is zval ** now) to  zobj->properties_table[0] 
# so when a zend_object inherit form multi parent and these parent have a same property_info->offset 
# properties, will result in a repeat zval **->zval ** transform, which will lead to a segmentfault
# *may be* this fix is not the best fix, we should not use this tricky way, and rewrite this mechanism.
2011-12-16 19:02:52 +00:00
Dmitry Stogov
b64e91ddeb Fixed bug #60139 (Anonymous functions create cycles not detected by the GC) 2011-11-02 06:31:33 +00:00
Etienne Kneuss
d8052a1544 Fix folding 2011-09-15 14:50:38 +00:00
Dmitry Stogov
e43ff1359e Fixed ZE specific compile warnings (Bug #55629) 2011-09-13 13:29:35 +00:00
Dmitry Stogov
2e25ec9eb7 Fixed bug #54372 (Crash accessing global object itself returned from its __get() handle) 2011-04-07 13:35:27 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Felipe Pena
e3ced0b540 - Reverted fix for bug #51176 2010-11-03 01:35:26 +00:00
Dmitry Stogov
f64e4bac49 Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry) 2010-10-01 09:49:20 +00:00
Dmitry Stogov
f2df6a4a3e - Improved memory usage
. 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.
2010-09-15 07:38:52 +00:00
Felipe Pena
e914d90643 - Fixed bug #52484 (__set() ignores setting properties with empty names) 2010-08-01 13:27:02 +00:00
Felipe Pena
2c2fcc2217 - Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+) 2010-06-12 15:30:21 +00:00
Dmitry Stogov
c5237d82bf Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties 2010-05-24 14:11:39 +00:00
Dmitry Stogov
277f271a83 Added compiler hints 2010-05-06 12:52:27 +00:00
Dmitry Stogov
94dd83722b Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table 2010-04-20 10:57:45 +00:00
Felipe Pena
79f618833f - Fixed bug #51176 (Static calling in non-static method behaves like $this->) 2010-03-02 00:16:40 +00:00
Sebastian Bergmann
d2281d1dff sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php 2010-01-05 20:46:53 +00:00
Scott MacVicar
d976be4bda Make the check case sensitive, and since we can only have a constructor that matches the class name or is __construct
its probably safe to just check for __. This means we can skip lowering the function_name, which is hard to be binary
safe sine we don't store the length.

If we just did a zend_hash_exists lookup we'd be fine since its stored lowercased already :)
2009-06-19 03:29:47 +00:00
Scott MacVicar
8e3aebd550 Fix bug #48215 - Calling a method with the same name as the parent class calls the constructor instead. 2009-06-18 13:46:16 +00:00
Felipe Pena
2cb9fe1f89 - Constified method_name arg. in zend_get_user_call_function() and zend_get_user_callstatic_function() 2009-06-12 21:36:53 +00:00
Felipe Pena
5f8ca6da95 MFH: Fixed bug #48533 (__callStatic is not invoked for private/protected methods) 2009-06-12 01:05:25 +00:00
Felipe Pena
db1eafa8d0 - MFH: Fixed bug #48248 (SIGSEGV when access to private property via &__get) 2009-05-12 22:55:05 +00:00
Dmitry Stogov
312176f083 Reverted "Rebind closure when binding to property" 2009-01-14 10:28:22 +00:00
Andrei Zmievski
26bb96e218 Changed __call() to be invoked on private/protected method access,
similar to properties and __get().
2009-01-07 22:12:39 +00:00
Marcus Boerger
0e131653c1 - MFH Rebind closure when binding to property 2009-01-03 17:48:40 +00:00
Sebastian Bergmann
08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Dmitry Stogov
7d4fd3fd38 Fixed bug #46409 (__invoke method called outside of object context when using array_map) 2008-11-27 19:01:23 +00:00
Dmitry Stogov
41ad9b4d1f Fixed bug #46308 (Invalid write when changing property from inside getter) 2008-10-17 10:26:07 +00:00
Etienne Kneuss
f90255c66b MFH: Handlerify get_closure 2008-08-14 21:36:56 +00:00
Felipe Pena
cf7384aa40 - MFH: Constness (Added const qualifier to several function parameters) 2008-08-12 17:20:25 +00:00
Dmitry Stogov
af05ce0af6 Fixed is_callable/call_user_func mess that had done different things for very similar arguments e.g. array("A","B") and "A::B" 2008-07-26 13:14:04 +00:00
Felipe Pena
cc23d3bade - Fixed bug #45089 (__callStatic $name case sensitivity) 2008-06-03 18:11:12 +00:00
Matt Wilmas
7da75d81e7 MFH: Add array_init_size() and use it where array size is known at initialization 2008-05-27 10:29:33 +00:00
Felipe Pena
a578b0cbcc - MFH: Fixed bug #44899 (__isset usage changes behavior of empty()) (patch by Etienne Kneuss) 2008-05-03 00:38:55 +00:00
Dmitry Stogov
2ecf4bb0a7 Lazy EG(active_symbol_table) initialization 2008-04-29 08:15:20 +00:00
Antony Dovgal
7dd943ac5c MFH: fix #39127 (Old-style constructor fallbacks produce strange results) 2008-03-17 14:54:42 +00:00
Dmitry Stogov
3e7e9d4af6 Fixed bug #44141 (private parent constructor callable through static function) 2008-02-21 13:55:45 +00:00
Sebastian Bergmann
d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Johannes Schlüter
1b6100f4c1 - MFH: Fix #43450 (Memory leak on some functions with implicit object
__toString() call) (Davic C.)
2007-12-21 20:56:33 +00:00
Dmitry Stogov
648fbe9d58 Fixed bug #43128 (Very long class name causes segfault) 2007-11-22 13:27:13 +00:00
Dmitry Stogov
c3ab6bd091 Fixed bug #43136 (possible crash on script execution timeout. The EG(function_state_ptr) is completely removed, EG(current_execute_data)->function_state must be used instead) 2007-11-20 09:51:12 +00:00
Sara Golemon
ee548c7bf3 MFH(r-1.192) Remove extraneous space in error/notice messages (felipe) 2007-11-17 21:52:02 +00:00
Dmitry Stogov
dd3c04cea1 Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class). 2007-11-12 09:12:06 +00:00
Jani Taskinen
b489251177 - MFH from HEAD:
. Folding tags
  . Parameter parsing
  . SPL debug info
  . array function improvements (not all yet)
  . Improvements to function calling with call_user_* functions
  . Improvements to debugging info in var_dump/print_r
# I propably forgot already something but this all was pretty close tied
# to each other so it wasn't possible to do it in parts.
2007-11-02 19:40:39 +00:00
Stanislav Malyshev
988d28cc13 ws 2007-10-18 20:44:41 +00:00