Commit Graph

119 Commits

Author SHA1 Message Date
Pavlo Yatsukhnenko 5a35e7edd4 memory leak 2016-12-05 23:54:00 +02:00
Pavlo Yatsukhnenko cb4fd619c0 memory leak 2016-12-05 16:53:24 +02:00
Pavlo Yatsukhnenko a23e36f208 zval_get_string
Added gc attribute to zend_string (for zend_string_release).
Added function zval_get_string and replace convert_to_string with it.
2016-12-02 16:04:59 +02:00
Pavlo Yatsukhnenko 433caf4788 refactoring 2016-11-21 17:46:58 +02:00
Pavlo Yatsukhnenko ad9f4ea4f6 fix crash on FreeBSD and CentOS 2016-11-21 09:47:20 +02:00
Pavlo Yatsukhnenko 3d7da1fdb6 refactoring 2016-11-20 21:07:24 +02:00
Pavlo Yatsukhnenko 14c19fa3a0 refactoring 2016-11-16 18:05:27 +02:00
Pavlo Yatsukhnenko d7d18bfa05 refactoring
Use estrndup instead os estrdup/emalloc+memcpy
2016-11-13 15:12:40 +02:00
Pavlo Yatsukhnenko 19f5f708c2 WIP: php7 compatibility 2016-11-11 23:04:27 +02:00
Pavlo Yatsukhnenko 5f15ce222f WIP: php7 compatibility 2016-11-09 21:03:36 +02:00
Pavlo Yatsukhnenko 04a7327af8 WIP: php7 compatibility 2016-11-08 20:11:51 +02:00
Pavlo Yatsukhnenko 5de84b3d01 WIP: php7 compatibility 2016-11-07 20:18:57 +02:00
Pavlo Yatsukhnenko 8f3deb7f34 Fix static analyzer warnings 2016-11-04 18:21:42 +02:00
Pavlo Yatsukhnenko 7919b5c0aa WIP: php7 compatibility
Wrap zend_is_callable_ex + session handlers
2016-10-31 22:59:59 +02:00
Pavlo Yatsukhnenko 56abe19721 WIP: php7 compatibility
Wrap zend_hash_init destructor.
Add implementation of zend_hash_str_exists, zend_hash_str_update_ptr,
zend_hash_index_update_ptr and zval_get_long functions.
2016-10-28 14:53:58 +03:00
Pavlo Yatsukhnenko 8cfebfd98b WIP: php7 compatibility
zend_list_insert + add_assoc_string + add_assoc_zval
2016-10-27 20:35:47 +03:00
Pavlo Yatsukhnenko a1e698873a WIP: php7 compatibility
Redefine add_next_index_string.
Fix zend_fcall_info retval and params.
2016-10-26 18:12:07 +03:00
Pavlo Yatsukhnenko 88658b5e9b WIP: php7 compatibility
Wrap create_cluster_context
2016-10-25 22:03:44 +03:00
Pavlo Yatsukhnenko 750ec8bbdc WIP: php7 compatibility
Redefine ZVAL_STRING + ZVAL_STRINGL macro
2016-10-24 18:00:26 +03:00
Pavlo Yatsukhnenko a2cda39fdc RedisArray refactoring 2016-10-23 23:31:58 +03:00
Pavlo Yatsukhnenko 8f006d70f2 WIP: php7 compatibility
Redefine call_user_function
2016-10-21 17:41:25 +03:00
Pavlo Yatsukhnenko 2f2b3b3193 ra_index_keys refactoring 2016-10-10 23:10:00 +03:00
Pavlo Yatsukhnenko 33a8843c44 RedisArray refactoring 2016-10-10 22:35:34 +03:00
Pavlo Yatsukhnenko 84d9c27813 WIP: php7 compatibility
Define zend_string type + ZEND_HASH_FOREACH_KEY_VAL macro
2016-10-06 18:10:11 +03:00
Pavlo Yatsukhnenko fa8f02946b WIP: php7 compatibility
Wrap zend_list_delete and add_property_resource.
Remove unnecessary zend_hash_get_current_key_ex calls and memmory
allocation.
2016-10-01 12:50:59 +03:00
Pavlo Yatsukhnenko 377dc5019c WIP: php7 compatibility
Redefine zend_hash_next_index_insert and zend_hash_get_current_data_ex macroses.
Fixed redis cluster crush (#954)
2016-09-23 14:09:50 +03:00
Pavlo Yatsukhnenko 2c62090a7d WIP: php7 compatibility
zend_hash_index_find + zend_hash_index_find_ptr
2016-09-21 09:03:32 +03:00
Pavlo Yatsukhnenko d7931ab340 WIP: php7 compatibility
ZEND_HASH_FOREACH_VAL now works with zval * instead of zval **
2016-09-14 16:46:23 +03:00
Pavlo Yatsukhnenko 46c2de1b8a WIP: php7 compatibility
Redefine `zend_hash_get_current_data` macro as static inline function +
add `zend_hash_get_current_data_ptr` function
2016-09-13 17:15:52 +03:00
Pavlo Yatsukhnenko 12d29886be using zend_hash_str_find+zend_hash_str_find_ptr instead of zend_hash_find 2016-09-09 11:17:51 +03:00
Pavlo Yatsukhnenko 7c9824dbbc ZEND_HASH_FOREACH_VAL macro 2016-09-06 11:54:08 +03:00
Pavlo Yatsukhnenko 9950a11991 redis_array_impl.c refactoring 2016-08-15 23:28:06 +03:00
Pavlo Yatsukhnenko e8fb3b780e replace emalloc+memcpy with estrndup 2016-07-30 23:43:59 +03:00
Pavlo Yatsukhnenko c7a8c3bd82 This fixes issue #908 2016-07-30 10:15:35 +03:00
michael-grunder 9df734a288 Segfault and memory leak fixes for pull request
* We don't need to zval_dtor z_cons as it's a non-duplicated stack
allocated string.

* Destroy our z_pure_cmds member as it is allocated
2016-07-01 11:41:53 -07:00
Pavlo Yatsukhnenko 14a41a6b07 Move ra->count initialization to ra_load_hosts 2016-07-01 13:22:22 +03:00
michael-grunder 3012052849 More IPv6 additions
* Modified RedisArray to support IPv6
* Updated general test suite to take an override host
* Updated make-cluster.sh to take an override host
2016-02-12 18:10:50 -08:00
michael-grunder fb0597992a Merge remote 2015-05-07 16:30:11 -07:00
michael-grunder 90a7cf4817 Updates to fix rebase issues 2015-05-06 12:12:49 -07:00
michael-grunder 69c6c04eec Added RedisArray and RedisCluster to config.w32 and more win32 fixes
Manually picked from: 6c377eee18
2015-05-05 15:22:40 -07:00
michael-grunder 97c9edc3aa Sorted a memory leak in RedisArray and retabbed unit tests 2015-05-05 15:18:01 -07:00
michael-grunder 0b269cbb72 More RedisCluster fixes
* Properly handle single array as well as variadic arguments for
  things like RedisCluster::del
* Wrapping keys in {} such that Redis and RedisCluster tests can
  use the same methods (avoiding CROSSSLOT).
* Fixed a double-free scenerio in redis_array_impl.c
2015-05-05 15:16:49 -07:00
michael-grunder 9c4de060e6 Fix rehashing memory leaks
The pattern to move a key for various types (strings, sets, zsets,
hashes, etc) used a simple pattern:

1.  Construct the call in order to get all of the keys from the source
2.  Make a pass through call to the source node to get a response
3.  Use the response to make a pass through call to the destination node

The issue, however, was that we were using the same return value variable
for both source and destination nodes, so we would leak the response from
the source node.

Conflicts:
	redis_array_impl.c
2015-05-05 15:13:39 -07:00
michael-grunder 887eff0a9a Fix memory leaks in RedisArray (backport from develop) 2015-05-05 15:13:39 -07:00
michael-grunder f0f341e90d Remove unused variable 2015-01-30 11:08:07 -08:00
michael-grunder 6dcc950054 Fix rehashing memory leaks
The pattern to move a key for various types (strings, sets, zsets,
hashes, etc) used a simple pattern:

1.  Construct the call in order to get all of the keys from the source
2.  Make a pass through call to the source node to get a response
3.  Use the response to make a pass through call to the destination node

The issue, however, was that we were using the same return value variable
for both source and destination nodes, so we would leak the response from
the source node.
2015-01-29 15:57:17 -08:00
michael-grunder f37574e959 Fix some simple leaks in RedisArray
* Make sure we always free our allocated key when extracting
* Don't copy z_fun and z_dist twice and only free one
* Free outer array for z_zadd_args
2015-01-29 15:17:18 -08:00
Michael Maclean 9f6edf8ada Iterate over hosts hash table in a safer way 2015-01-28 16:03:24 +00:00
Michael Maclean a308b81068 Replace calls to zend_hash_quick_find with NULL arguments 2015-01-28 16:03:05 +00:00
michael-grunder 66cdeb6b59 Allow integer connect_timeout in RedisArray
Addresses #520
2014-10-20 12:20:57 -07:00