Dmitry Stogov
050d7e38ad
Cleanup (1-st round)
2014-04-15 15:40:40 +04:00
Dmitry Stogov
703c1bc570
Fixed passing arguments by reference into array_walk() callbacks.
2014-04-14 15:11:05 +04:00
Bob Weinand
12844292b8
Merge branch 'PHP-5.6'
2014-04-14 00:10:25 +02:00
Bob Weinand
a93e734f81
Merge branch 'PHP-5.5' into PHP-5.6
2014-04-14 00:08:36 +02:00
Bob Weinand
bf3edbada6
Merge branch 'PHP-5.4' into PHP-5.5
2014-04-13 23:03:53 +02:00
Bob Weinand
beda5093b4
Reverted to 5a0da281e5
...
Discussion: http://news.php.net/php.cvs/76836
2014-04-13 23:01:31 +02:00
Bob Weinand
ef214aa3c0
Merge branch 'PHP-5.6'
2014-04-13 19:28:32 +02:00
Bob Weinand
fb99409f89
Merge branch 'PHP-5.5' into PHP-5.6
2014-04-13 19:27:43 +02:00
Bob Weinand
eca0644e0a
Merge branch 'PHP-5.4' into PHP-5.5
2014-04-13 19:25:07 +02:00
Bob Weinand
1a4a9eede5
Fix bug #67064 in a BC safe way
...
You can use an optional parameter now when implementing the Countable interface
to get the $mode passed to count().
2014-04-13 19:24:12 +02:00
Nikita Popov
21e01f2b70
Merge branch 'PHP-5.6'
2014-04-09 12:31:35 +02:00
Nikita Popov
ad2ef3d97e
Add only_integer_keys option to zend_hash_reindex
...
This allows to either do a full reindex, or only reindex the integer
keys.
2014-04-09 12:31:21 +02:00
Nikita Popov
f485c84a14
Don't always separate splice replacement array
...
Only perform separation when a typecast is done. Avoids doing a
full hash copy in many cases.
2014-04-09 12:31:21 +02:00
Nikita Popov
22d3eb3117
Add zend_hash_splice
...
This implements the original functionality of php_splice, but
as an in-place operation, thus avoiding copying the HT.
This is much faster (~10x) if the splice removes a small portion
of the array and doesn't insert many elements.
2014-04-09 12:31:21 +02:00
Nikita Popov
1aa8719e32
Add zend_hash_reindex
...
The implementation differs from the original in array.c in that it
rehashes the hashtable in the same loop. This is approximately two
times faster (not counting the rare case of a purely associative
array).
2014-04-09 12:31:21 +02: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
58f0f2503c
Various VM optimizations
2014-04-04 02:52:53 +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
6b2ed577fd
Avoid unnecessry reallocations
2014-04-01 22:36:17 +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
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
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
f3272bf7ac
Fixed extract() support IS_INDIRECT
2014-03-26 22:52:28 +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
a6f09e48d7
Fixed memory leak
2014-03-20 01:05:06 +04:00
Dmitry Stogov
b7938ab1bd
Refactored GC (incomplete)
2014-03-19 17:00:28 +04:00
Dmitry Stogov
6b6e903688
Fixed support for references
2014-03-18 13:20:11 +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
Xinchen Hui
3203c65c7c
Fixed COUNT_RECURSIVE reference handling
2014-03-17 22:04:54 +08:00
Dmitry Stogov
734db60eaa
Fixed reference support
2014-03-14 12:50:20 +04:00
Dmitry Stogov
5f613c0d23
Fixed support for references
2014-03-14 12:14:59 +04:00
Dmitry Stogov
dd1bd54408
Fixed support for references
2014-03-13 23:23:20 +04:00
Dmitry Stogov
d708d3c596
Fixed passing arguments by reference from internal functions
2014-03-11 22:33:28 +04:00
Xinchen Hui
b2b457a7e0
Fixed wrong addref usage in extract
2014-03-09 11:53:06 +08:00
Dmitry Stogov
47f9014458
Fixed array_nultisort() to support IS_REFERENCE
2014-03-05 17:23:40 +04:00
Dmitry Stogov
7320abbaa9
Reverted "efree(args);" removed by mistake
2014-03-05 15:49:24 +04:00
Xinchen Hui
70b7887712
Fixed refcounted handling
2014-03-05 18:17:16 +08:00
Xinchen Hui
74c2deecd8
Fixed refcounted
2014-03-05 18:11:22 +08:00
Xinchen Hui
581fa5822e
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
...
Conflicts:
ext/standard/array.c
2014-03-05 18:02:35 +08:00
Xinchen Hui
bfaa9669a6
Fixed refcounted
2014-03-05 18:00:46 +08:00
Dmitry Stogov
3733737328
Handle interned strings as non-refcounted scalars
2014-03-05 13:55:56 +04:00
Xinchen Hui
0791bdb562
retval might be IS_UNDEF even the call is successed
2014-03-05 17:53:01 +08:00
Xinchen Hui
75d567ef9a
Fixed NULL pointer def in ext/standard/tests/array/array_fill_keys_variation2.php
2014-03-05 17:31:10 +08:00
Xinchen Hui
2ee6bc1309
Remove "efree(args")
2014-03-05 17:07:09 +08:00
Xinchen Hui
57ae19a0b7
Checkout refcounted before doing addref
2014-03-05 17:02:50 +08:00
Dmitry Stogov
040dea8b82
Arguments taken by internal functions using zend_parse_parameters() with "+" and "*" specifications must not be deallocated anymore.
2014-03-05 11:10:52 +04:00
Dmitry Stogov
2bf3018169
Fixed array_push()
2014-02-28 15:48:39 +04:00
Xinchen Hui
71dac3d54f
Don't add_ref in add_*_str functions
2014-02-25 15:47:24 +08:00
Xinchen Hui
69a93d2fd7
Fixed segfault in ext/standard/tests/strings/bug49785.phpt
2014-02-23 21:53:48 +08:00