diff options
author | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2019-02-18 15:33:29 +0300 |
---|---|---|
committer | michael-grunder <michael.grunder@gmail.com> | 2019-03-19 21:09:26 +0300 |
commit | 0d2dd169fac48f09fb4fbea3268e06b61d4d0a0c (patch) | |
tree | 20e8ad3aefd295fdda8dd2c535cac9d0052d88f5 /redis_array.c | |
parent | 0c02d5762b285063a7cfd8626a0545f237bc452d (diff) |
Use zend_string for storing key hashing algorithm
Diffstat (limited to 'redis_array.c')
-rw-r--r-- | redis_array.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/redis_array.c b/redis_array.c index 37b31484..1641950b 100644 --- a/redis_array.c +++ b/redis_array.c @@ -160,7 +160,7 @@ redis_array_free(RedisArray *ra) zval_dtor(&ra->z_dist); /* Hashing algorithm */ - zval_dtor(&ra->z_algo); + if (ra->algorithm) zend_string_release(ra->algorithm); /* Delete pur commands */ zend_hash_destroy(ra->pure_cmds); @@ -226,13 +226,14 @@ redis_array_get(zval *id TSRMLS_DC) Public constructor */ PHP_METHOD(RedisArray, __construct) { - zval *z0, z_fun, z_dist, z_algo, *zpData, *z_opts = NULL; + zval *z0, z_fun, z_dist, *zpData, *z_opts = NULL; RedisArray *ra = NULL; zend_bool b_index = 0, b_autorehash = 0, b_pconnect = 0, consistent = 0; HashTable *hPrev = NULL, *hOpts = NULL; long l_retry_interval = 0; zend_bool b_lazy_connect = 0; double d_connect_timeout = 0, read_timeout = 0.0; + zend_string *algorithm = NULL; redis_array_object *obj; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|a", &z0, &z_opts) == FAILURE) { @@ -241,7 +242,6 @@ PHP_METHOD(RedisArray, __construct) ZVAL_NULL(&z_fun); ZVAL_NULL(&z_dist); - ZVAL_NULL(&z_algo); /* extract options */ if(z_opts) { hOpts = Z_ARRVAL_P(z_opts); @@ -266,7 +266,7 @@ PHP_METHOD(RedisArray, __construct) /* extract function name. */ if ((zpData = zend_hash_str_find(hOpts, "algorithm", sizeof("algorithm") - 1)) != NULL && Z_TYPE_P(zpData) == IS_STRING) { - ZVAL_ZVAL(&z_algo, zpData, 1, 0); + algorithm = zval_get_string(zpData); } /* extract index option. */ @@ -333,13 +333,13 @@ PHP_METHOD(RedisArray, __construct) break; case IS_ARRAY: - ra = ra_make_array(Z_ARRVAL_P(z0), &z_fun, &z_dist, &z_algo, hPrev, b_index, b_pconnect, l_retry_interval, b_lazy_connect, d_connect_timeout, read_timeout, consistent TSRMLS_CC); + ra = ra_make_array(Z_ARRVAL_P(z0), &z_fun, &z_dist, hPrev, b_index, b_pconnect, l_retry_interval, b_lazy_connect, d_connect_timeout, read_timeout, consistent, algorithm TSRMLS_CC); break; default: WRONG_PARAM_COUNT; } - zval_dtor(&z_algo); + if (algorithm) zend_string_release(algorithm); zval_dtor(&z_dist); zval_dtor(&z_fun); |