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
bf35b22af5
Optimized ISSET_ISEMPTY_DIM_OBJ
2014-04-07 14:56:34 +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
5c912a805b
Use "fast" comparison function
2014-04-02 00:48:26 +04:00
Dmitry Stogov
ea85451b65
Refactored data structures to keep zend_object* instead of a whole zval in some places
2014-03-28 02:11:22 +04:00
Dmitry Stogov
68385716a4
Fixed support for references & cleanup
2014-03-27 18:14:57 +04:00
Dmitry Stogov
9a8fbdf2f4
Use CV variable offset instead of CV variable number
2014-03-27 16:00:25 +04:00
Dmitry Stogov
d83d34ba6d
Cleanup
2014-03-27 14:55:52 +04:00
Dmitry Stogov
c6cba55454
Use ZVAL_DEREF() macro
2014-03-27 13:39:09 +04:00
Dmitry Stogov
54d559d893
Replaced (Z_TYPE(x) == IS_REFERENCE) with (Z_ISREF(x))
2014-03-27 11:50:45 +04:00
Dmitry Stogov
92aef5279a
Fixed support for references
2014-03-27 00:05:06 +04:00
Dmitry Stogov
de6a76d16e
fixed support for references
2014-03-26 22:06:44 +04:00
Dmitry Stogov
887189ca31
Refactored IS_INDIRECT usage for CV and object properties to support HashTable resizing
2014-03-26 18:07:31 +04:00
Dmitry Stogov
c36294c4da
Cleanup
2014-03-21 21:48:38 +04:00
Dmitry Stogov
a3abf6f291
Fixed refcounting
2014-03-21 15:33:08 +04:00
Dmitry Stogov
d735434e47
Fixed refcounting
2014-03-21 12:07:27 +04:00
Dmitry Stogov
6186bc6dff
Fixed iterator dtor
2014-03-20 23:28:24 +04:00
Dmitry Stogov
3c0feb51bc
Fixed assignment of "new" by reference
2014-03-19 23:51:28 +04:00
Dmitry Stogov
b7938ab1bd
Refactored GC (incomplete)
2014-03-19 17:00:28 +04:00
Dmitry Stogov
aa5f55306b
Refactored EG(active_symbol_table) to be zend_array* instead of HashTable*
2014-03-17 23:15:22 +04:00
Dmitry Stogov
b8089696c4
Fixed support for references
2014-03-13 22:56:18 +04:00
Dmitry Stogov
c1236214fe
REFERENCE is always REFCOUNTED
2014-03-13 22:07:37 +04:00
Dmitry Stogov
25d55d16fc
Fixed foreach (now we store HashPointer in additional IS_TMP_VAR slot(s))
2014-03-13 17:01:28 +04:00
Dmitry Stogov
e0dd8a4f4b
Fixed IS_INDIRECT handling when assign array element by reference.
...
This might cause passing invalid pointer if the array could be resized before IS_INDIRECT usage.
Now we use IS_REFERENCE instead of IS_INDIRECT.
The following test crashed before:
<?php $a = array(0,1,2,3,4,5,6,7); $a[8] = &$a[7]; ?>
2014-03-13 00:30:53 +04:00
Dmitry Stogov
72f738c368
Fixed reference afto conversion
2014-03-12 12:07:03 +04:00
Dmitry Stogov
8863df3653
Fixed reference handling
2014-03-11 14:49:25 +04:00
Xinchen Hui
53e312c663
Review ended
...
Revert "An demo(for review) to show how to fix the problem(symbol table resize)"
This reverts commit 60c354510b
.
2014-03-11 14:23:14 +08:00
Xinchen Hui
60c354510b
An demo(for review) to show how to fix the problem(symbol table resize)
2014-03-10 16:25:05 +08:00
Xinchen Hui
80625f20e5
Revert "An demo(for review) to show how to fix the problem we meet"
...
This reverts commit 4aeae15706
.
2014-03-10 16:24:35 +08:00
Xinchen Hui
4aeae15706
An demo(for review) to show how to fix the problem we meet
2014-03-10 11:29:28 +08:00
Xinchen Hui
6c557d867c
Fixed ref hanlding in ADD_ARRAY_ELEMENT (by ext/standard/tests/array/bug30074.phpt)
2014-03-09 19:45:45 +08:00
Dmitry Stogov
e9855b1992
Fixed pass by reference special cases
2014-03-07 16:45:32 +04:00
Dmitry Stogov
03c7ab5a95
Fixed return by reference
2014-03-07 12:25:55 +04:00
Dmitry Stogov
70260d133e
Fixed memory leak
2014-03-07 00:26:21 +04:00
Dmitry Stogov
9ed631a4d0
Fixed ArrayAccess behavior
2014-03-06 17:59:17 +04:00
Dmitry Stogov
60eac8b860
Fixed string offset handling
2014-03-06 16:00:38 +04:00
Xinchen Hui
b212461297
IS_REFERENCE is unfrequent
2014-03-06 18:23:16 +08:00
Dmitry Stogov
076da5a372
Fixed IS_REFERENCE support
2014-03-06 13:59:15 +04:00
Dmitry Stogov
9727b47418
Fixed ArrayAccess handling
2014-03-06 13:11:23 +04:00
Dmitry Stogov
018be97c0d
Fixed support for undefined constants in RECV_INIT
2014-03-06 00:15:56 +04:00