|
32 | 32 | #include "redis_array_impl.h"
|
33 | 33 |
|
34 | 34 | /* Simple macro to detect failure in a RedisArray call */
|
35 |
| -#if (PHP_MAJOR_VERSION < 7) |
36 |
| -#define RA_CALL_FAILED(rv, cmd) ( \ |
37 |
| - (Z_TYPE_P(rv) == IS_BOOL && !Z_LVAL_P(rv)) || \ |
38 |
| - (Z_TYPE_P(rv) == IS_ARRAY && zend_hash_num_elements(Z_ARRVAL_P(rv)) == 0) || \ |
39 |
| - (Z_TYPE_P(rv) == IS_LONG && Z_LVAL_P(rv) == 0 && !strcasecmp(cmd, "TYPE")) \ |
40 |
| -) |
41 |
| -#else |
42 | 35 | #define RA_CALL_FAILED(rv, cmd) ( \
|
43 |
| - (Z_TYPE_P(rv) == IS_FALSE) || \ |
| 36 | + PHPREDIS_ZVAL_IS_STRICT_FALSE(rv) || \ |
44 | 37 | (Z_TYPE_P(rv) == IS_ARRAY && zend_hash_num_elements(Z_ARRVAL_P(rv)) == 0) || \
|
45 | 38 | (Z_TYPE_P(rv) == IS_LONG && Z_LVAL_P(rv) == 0 && !strcasecmp(cmd, "TYPE")) \
|
46 | 39 | )
|
47 |
| -#endif |
48 | 40 |
|
49 | 41 | extern zend_class_entry *redis_ce;
|
50 | 42 | zend_class_entry *redis_array_ce;
|
51 | 43 |
|
52 |
| -ZEND_BEGIN_ARG_INFO_EX(__redis_array_call_args, 0, 0, 2) |
| 44 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0) |
| 45 | +ZEND_END_ARG_INFO() |
| 46 | + |
| 47 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_ctor, 0, 0, 1) |
| 48 | + ZEND_ARG_ARRAY_INFO(0, hosts, 0) |
| 49 | + ZEND_ARG_ARRAY_INFO(0, options, 0) |
| 50 | +ZEND_END_ARG_INFO() |
| 51 | + |
| 52 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_call, 0, 0, 2) |
53 | 53 | ZEND_ARG_INFO(0, function_name)
|
54 | 54 | ZEND_ARG_INFO(0, arguments)
|
55 | 55 | ZEND_END_ARG_INFO()
|
56 | 56 |
|
| 57 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_target, 0, 0, 1) |
| 58 | + ZEND_ARG_INFO(0, key) |
| 59 | +ZEND_END_ARG_INFO() |
| 60 | + |
| 61 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_instance, 0, 0, 1) |
| 62 | + ZEND_ARG_INFO(0, host) |
| 63 | +ZEND_END_ARG_INFO() |
| 64 | + |
| 65 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_rehash, 0, 0, 0) |
| 66 | + ZEND_ARG_INFO(0, callable) |
| 67 | +ZEND_END_ARG_INFO() |
| 68 | + |
| 69 | +ZEND_BEGIN_ARG_INFO_EX(arginfo_select, 0, 0, 1) |
| 70 | + ZEND_ARG_INFO(0, index) |
| 71 | +ZEND_END_ARG_INFO() |
| 72 | + |
57 | 73 | zend_function_entry redis_array_functions[] = {
|
58 |
| - PHP_ME(RedisArray, __construct, NULL, ZEND_ACC_PUBLIC) |
59 |
| - PHP_ME(RedisArray, __call, __redis_array_call_args, ZEND_ACC_PUBLIC) |
| 74 | + PHP_ME(RedisArray, __construct, arginfo_ctor, ZEND_ACC_PUBLIC) |
| 75 | + PHP_ME(RedisArray, __call, arginfo_call, ZEND_ACC_PUBLIC) |
60 | 76 |
|
61 |
| - PHP_ME(RedisArray, _hosts, NULL, ZEND_ACC_PUBLIC) |
62 |
| - PHP_ME(RedisArray, _target, NULL, ZEND_ACC_PUBLIC) |
63 |
| - PHP_ME(RedisArray, _instance, NULL, ZEND_ACC_PUBLIC) |
64 |
| - PHP_ME(RedisArray, _function, NULL, ZEND_ACC_PUBLIC) |
65 |
| - PHP_ME(RedisArray, _distributor, NULL, ZEND_ACC_PUBLIC) |
66 |
| - PHP_ME(RedisArray, _rehash, NULL, ZEND_ACC_PUBLIC) |
| 77 | + PHP_ME(RedisArray, _hosts, arginfo_void, ZEND_ACC_PUBLIC) |
| 78 | + PHP_ME(RedisArray, _target, arginfo_target, ZEND_ACC_PUBLIC) |
| 79 | + PHP_ME(RedisArray, _instance, arginfo_instance, ZEND_ACC_PUBLIC) |
| 80 | + PHP_ME(RedisArray, _function, arginfo_void, ZEND_ACC_PUBLIC) |
| 81 | + PHP_ME(RedisArray, _distributor, arginfo_void, ZEND_ACC_PUBLIC) |
| 82 | + PHP_ME(RedisArray, _rehash, arginfo_rehash, ZEND_ACC_PUBLIC) |
67 | 83 |
|
68 | 84 | /* special implementation for a few functions */
|
69 |
| - PHP_ME(RedisArray, select, NULL, ZEND_ACC_PUBLIC) |
70 |
| - PHP_ME(RedisArray, info, NULL, ZEND_ACC_PUBLIC) |
71 |
| - PHP_ME(RedisArray, ping, NULL, ZEND_ACC_PUBLIC) |
72 |
| - PHP_ME(RedisArray, flushdb, NULL, ZEND_ACC_PUBLIC) |
73 |
| - PHP_ME(RedisArray, flushall, NULL, ZEND_ACC_PUBLIC) |
| 85 | + PHP_ME(RedisArray, select, arginfo_select, ZEND_ACC_PUBLIC) |
| 86 | + PHP_ME(RedisArray, info, arginfo_void, ZEND_ACC_PUBLIC) |
| 87 | + PHP_ME(RedisArray, ping, arginfo_void, ZEND_ACC_PUBLIC) |
| 88 | + PHP_ME(RedisArray, flushdb, arginfo_void, ZEND_ACC_PUBLIC) |
| 89 | + PHP_ME(RedisArray, flushall, arginfo_void, ZEND_ACC_PUBLIC) |
74 | 90 | PHP_ME(RedisArray, mget, NULL, ZEND_ACC_PUBLIC)
|
75 | 91 | PHP_ME(RedisArray, mset, NULL, ZEND_ACC_PUBLIC)
|
76 | 92 | PHP_ME(RedisArray, del, NULL, ZEND_ACC_PUBLIC)
|
|
0 commit comments