Commit Graph

79020 Commits

Author SHA1 Message Date
Dmitry Stogov
b1d2efcc2d Fixed reference counting 2014-04-09 18:11:18 +04:00
Dmitry Stogov
8732f5e5d7 Removed useless code 2014-04-09 17:55:40 +04:00
Dmitry Stogov
9b276c7a0c Fixed error reporting 2014-04-09 17:08:52 +04:00
Dmitry Stogov
b7e6c8d0f8 Fixed reference counting 2014-04-09 17:02:13 +04:00
Dmitry Stogov
79b27dc096 Fixed reference counting 2014-04-09 16:48:03 +04:00
Dmitry Stogov
d9f6068fd3 Fixed GC 2014-04-09 15:26:45 +04:00
Dmitry Stogov
22ec682e77 Fixed reference counting 2014-04-09 15:05:22 +04:00
Dmitry Stogov
085be9d618 Fixed ArrayObject::sort() family 2014-04-09 14:25:35 +04:00
Dmitry Stogov
39d2cede74 Fixed support for IS_INDIRECT and IS_REFERENCE 2014-04-09 13:23:28 +04:00
Dmitry Stogov
ad524d2818 Use proper size 2014-04-09 12:16:21 +04:00
Dmitry Stogov
48d3b95aee Fixed NULL pointer dereferencing 2014-04-09 11:56:48 +04:00
Dmitry Stogov
98ab24f1af Fixed NULL pointer dereferencing 2014-04-09 11:39:39 +04:00
Dmitry Stogov
abbb1c0f00 Unset CV before calling zval_ptr_dtor(), because its destructor may bailout and stay CV value in inconsistet state 2014-04-09 10:47:24 +04:00
Dmitry Stogov
c99b767537 Fixed generator destruction 2014-04-09 10:47:03 +04:00
Dmitry Stogov
479f520d14 Fixed store of "shared" zend_strings 2014-04-09 09:43:42 +04:00
Dmitry Stogov
7402af380b Fixed destruction of objects and iterators on unclean request shutdown and GC (few cases are still unfixed).
Now we destroy objects it two steps. At first - object properties of all objects and only then the objects their selves.
2014-04-09 01:50:15 +04:00
Dmitry Stogov
0e7d30e8d3 Optimized ASSIGN_OP 2014-04-08 02:25:49 +04:00
Dmitry Stogov
3d0b32b3db IS_CONST can't be a reference 2014-04-08 00:52:07 +04:00
Dmitry Stogov
f3c57716f7 Optimized ZEND_FETCH_R and family 2014-04-08 00:38:54 +04:00
Dmitry Stogov
3d17219cd8 Refactored zend_hash_* iteration API zend_hash_fove_forward_ex(ht, pos) and family require second argument to be real pointer.
&(ht)->nInternalPointer should be passed instead of NULL.
zend_hash_update_current_key() may work only with internal pointer.
2014-04-07 23:14:17 +04:00
Dmitry Stogov
3167b49ce9 Allocate HashTable->arData and HashTable->arHash at once 2014-04-07 18:22:03 +04:00
Dmitry Stogov
66b3b907c2 Cleanup 2014-04-07 16:50:41 +04:00
Dmitry Stogov
bf35b22af5 Optimized ISSET_ISEMPTY_DIM_OBJ 2014-04-07 14:56:34 +04:00
Dmitry Stogov
3485b11499 "incremental" hash bucket initialization 2014-04-07 13:31:44 +04:00
Dmitry Stogov
df7293b072 don't use memset() for array of zval initialization 2014-04-07 12:14:44 +04:00
Dmitry Stogov
8b2bb30137 Use macros 2014-04-07 10:57:58 +04:00
Dmitry Stogov
a94923d5cb Avoid double zval copying in ZEND_SEND_VAL and zend_send_by_var_helper 2014-04-05 02:14:17 +04:00
Dmitry Stogov
a80e945835 Optimized ZEND_FETCH_DIM_* 2014-04-05 01:56:51 +04:00
Dmitry Stogov
c11dc75b4e Refactored IS_INDIRECT IS_VAR passing between opcodes to avoid reference counting 2014-04-04 19:01:53 +04:00
Dmitry Stogov
cea26aa2eb Tergets of ASSIGN and ASSIGN_REF don't have to be initialized 2014-04-04 15:22:41 +04:00
Dmitry Stogov
eaeb3c39b4 Optimized RECV_* opcodes 2014-04-04 14:36:34 +04:00
Dmitry Stogov
3bc8810b1e Constant duplication optimization
Argument receiving optimization
2014-04-04 03:55:27 +04:00
Dmitry Stogov
58f0f2503c Various VM optimizations 2014-04-04 02:52:53 +04:00
Dmitry Stogov
58871730c8 ASSIGN_REF optimization 2014-04-03 16:53:30 +04:00
Dmitry Stogov
76cc99fe60 Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc) 2014-04-03 15:26:23 +04:00
Dmitry Stogov
d8099d0468 Changed data layout to allow more efficient operations 2014-04-02 14:34:44 +04:00
Dmitry Stogov
3b25faa4aa Fixed 0 index handling 2014-04-02 12:09:05 +04:00
Dmitry Stogov
7240b4ec4d Avoid unnecessary zval separations 2014-04-02 01:56:16 +04:00
Dmitry Stogov
5c912a805b Use "fast" comparison function 2014-04-02 00:48:26 +04:00
Dmitry Stogov
60961bba3d Avoid useless memset() 2014-04-01 23:56:45 +04:00
Dmitry Stogov
dccd97d347 Avoid unnecessary zval separations 2014-04-01 23:44:42 +04:00
Dmitry Stogov
4456bfaa72 Avoid unnecessry reallocations 2014-04-01 23:27:51 +04:00
Dmitry Stogov
6b2ed577fd Avoid unnecessry reallocations 2014-04-01 22:36:17 +04:00
Dmitry Stogov
8ddda2f649 Avoid unnecessry reallocation 2014-04-01 21:19:44 +04:00
Dmitry Stogov
8dedaf8512 Use interned strings for one character strings 2014-04-01 18:06:50 +04:00
Dmitry Stogov
042c937f69 Use STR_COPY() instead of STR_DUP() where possible 2014-04-01 17:10:15 +04:00
Dmitry Stogov
a25a1ba0ef STR_DUP() doesn't duplicate interned strings anymore. In case new string is required STR_INIT() or STR_ALLOC() should be used. 2014-04-01 16:31:03 +04:00
Dmitry Stogov
7eff369ba9 Store constant flags 2014-04-01 16:30:13 +04:00
Dmitry Stogov
9799542ffa Fixed parameter passing 2014-04-01 14:42:04 +04:00
Dmitry Stogov
015e5dc43b In case the string can't be interned it must not be released 2014-04-01 14:35:34 +04:00