|
19 | 19 |
|
20 | 20 | #include <php.h>
|
21 | 21 | #include <Zend/zend_string.h>
|
22 |
| -#if PHP_VERSION_ID >= 70000 |
23 | 22 | #include <Zend/zend_portability.h>
|
24 |
| -#endif |
25 | 23 |
|
26 | 24 | #ifdef PHP_WIN32
|
27 | 25 | #include "config.w32.h"
|
|
40 | 38 | #define HASH_KEY_NON_EXISTENT HASH_KEY_NON_EXISTANT
|
41 | 39 | #endif
|
42 | 40 |
|
43 |
| -#if PHP_VERSION_ID >= 70000 |
44 | 41 | #define str_efree(s) efree((char*) s)
|
45 |
| -#else |
46 |
| -#include <Zend/zend_string.h> |
47 |
| -#endif |
48 | 42 |
|
49 | 43 | #if defined(__GNUC__)
|
50 | 44 | #define ARG_UNUSED __attribute__((unused))
|
|
66 | 60 | #define PHONGO_BREAK_INTENTIONALLY_MISSING
|
67 | 61 | #endif
|
68 | 62 |
|
69 |
| -#if PHP_VERSION_ID >= 70000 |
70 | 63 | #define phongo_char zend_string
|
71 | 64 | #define phongo_long zend_long
|
72 | 65 | #if SIZEOF_ZEND_LONG == 8
|
|
120 | 113 | 0 \
|
121 | 114 | } \
|
122 | 115 | }
|
123 |
| -#else /* PHP_VERSION_ID < 70000 */ |
124 |
| -#define phongo_char char |
125 |
| -#define phongo_long long |
126 |
| -#define PHONGO_LONG_FORMAT "ld" |
127 |
| -#define SIZEOF_PHONGO_LONG SIZEOF_LONG |
128 |
| -#define ZSTR_VAL(str) str |
129 |
| -#define phongo_create_object_retval zend_object_value |
130 |
| -#define phongo_get_gc_table zval*** |
131 |
| -#define PHONGO_ALLOC_OBJECT_T(_obj_t, _class_type) (_obj_t*) ecalloc(1, sizeof(_obj_t)) |
132 |
| -#define PHONGO_TSRMLS_FETCH_FROM_CTX(user_data) TSRMLS_FETCH_FROM_CTX(user_data) |
133 |
| -#define DECLARE_RETURN_VALUE_USED |
134 |
| -#define EXCEPTION_P(_ex, _zp) _zp = _ex |
135 |
| -#define ADD_ASSOC_STRING(_zv, _key, _value) add_assoc_string_ex(_zv, ZEND_STRS(_key), (char*) (_value), 1); |
136 |
| -#define ADD_ASSOC_STRINGL(_zv, _key, _value, _len) add_assoc_stringl_ex(_zv, ZEND_STRS(_key), (char*) (_value), _len, 1); |
137 |
| -#define ADD_ASSOC_STRING_EX(_zv, _key, _key_len, _value, _value_len) add_assoc_stringl_ex(_zv, _key, _key_len + 1, (char*) (_value), _value_len, 1); |
138 |
| -#define ADD_ASSOC_LONG_EX(_zv, _key, _value) add_assoc_long_ex(_zv, ZEND_STRS(_key), _value); |
139 |
| -#define ADD_ASSOC_ZVAL_EX(_zv, _key, _value) add_assoc_zval_ex(_zv, ZEND_STRS(_key), _value); |
140 |
| -#define ADD_ASSOC_ZVAL(_zv, _key, _value) add_assoc_zval(_zv, _key, _value); |
141 |
| -#define ADD_ASSOC_NULL_EX(_zv, _key) add_assoc_null_ex(_zv, ZEND_STRS(_key)); |
142 |
| -#define ADD_ASSOC_BOOL_EX(_zv, _key, _value) add_assoc_bool_ex(_zv, ZEND_STRS(_key), _value); |
143 |
| -#define ZVAL_INT64_STRING(_zv, _value) \ |
144 |
| - do { \ |
145 |
| - char tmp[24]; \ |
146 |
| - int tmp_len; \ |
147 |
| - tmp_len = snprintf(tmp, sizeof(tmp), "%" PRId64, (_value)); \ |
148 |
| - ZVAL_STRINGL((_zv), tmp, tmp_len, 1); \ |
149 |
| - } while (0) |
150 |
| - |
151 |
| -#define ADD_ASSOC_INT64_AS_STRING(_zv, _key, _value) \ |
152 |
| - do { \ |
153 |
| - zval* z_int; \ |
154 |
| - MAKE_STD_ZVAL(z_int); \ |
155 |
| - ZVAL_INT64_STRING(z_int, (_value)); \ |
156 |
| - ADD_ASSOC_ZVAL_EX((_zv), (_key), z_int); \ |
157 |
| - } while (0) |
158 |
| -#define ADD_NEXT_INDEX_STRINGL(_zv, _value, _len) add_next_index_stringl(_zv, _value, _len, 1); |
159 |
| -#define Z_PHPDATE_P(object) ((php_date_obj*) zend_object_store_get_object(object TSRMLS_CC)) |
160 |
| -#define Z_ISUNDEF(x) !x |
161 |
| -#define ZVAL_UNDEF(x) \ |
162 |
| - do { \ |
163 |
| - (*x) = NULL; \ |
164 |
| - } while (0) |
165 |
| -#define ZVAL_ARR(z, a) \ |
166 |
| - do { \ |
167 |
| - HashTable* __arr = (a); \ |
168 |
| - zval* __z = (z); \ |
169 |
| - Z_ARRVAL_P(__z) = __arr; \ |
170 |
| - Z_TYPE_P(__z) = IS_ARRAY; \ |
171 |
| - } while (0); |
172 |
| -#define ZVAL_DUP(z, v) \ |
173 |
| - do { \ |
174 |
| - zval* _z = (z); \ |
175 |
| - const zval* _v = (v); \ |
176 |
| - *_z = *_v; \ |
177 |
| - INIT_PZVAL(_z); \ |
178 |
| - zval_copy_ctor(_z); \ |
179 |
| - } while (0); |
180 |
| -#define phongo_free_object_arg void |
181 |
| -#define phongo_zpp_char_len int |
182 |
| -#define ZEND_HASH_APPLY_PROTECTION(ht) 1 |
183 |
| -#define ZEND_HASH_GET_APPLY_COUNT(ht) ((ht)->nApplyCount) |
184 |
| -#define ZEND_HASH_DEC_APPLY_COUNT(ht) ((ht)->nApplyCount -= 1) |
185 |
| -#define ZEND_HASH_INC_APPLY_COUNT(ht) ((ht)->nApplyCount += 1) |
186 |
| -#define PHONGO_RETVAL_STRINGL(s, slen) RETVAL_STRINGL(s, slen, 1) |
187 |
| -#define PHONGO_RETURN_STRINGL(s, slen) RETURN_STRINGL(s, slen, 1) |
188 |
| -#define PHONGO_RETVAL_STRING(s) RETVAL_STRING(s, 1) |
189 |
| -#define PHONGO_RETURN_STRING(s) RETURN_STRING(s, 1) |
190 |
| -#define PHONGO_RETVAL_SMART_STR(val) PHONGO_RETVAL_STRINGL((val).c, (val).len); |
191 |
| -#define ZVAL_RETVAL_TYPE zval* |
192 |
| -#define ZVAL_STATIC_INIT zval_used_for_init |
193 |
| -#endif |
194 | 116 |
|
195 | 117 | #if SIZEOF_PHONGO_LONG == 8
|
196 | 118 | #define ADD_INDEX_INT64(_zv, _index, _value) add_index_long((_zv), (_index), (_value))
|
197 | 119 | #define ADD_NEXT_INDEX_INT64(_zv, _value) add_next_index_long((_zv), (_value))
|
198 | 120 | #define ADD_ASSOC_INT64(_zv, _key, _value) add_assoc_long((_zv), (_key), (_value))
|
199 | 121 | #define ZVAL_INT64(_zv, _value) ZVAL_LONG((_zv), (_value))
|
200 | 122 | #elif SIZEOF_PHONGO_LONG == 4
|
201 |
| -#if PHP_VERSION_ID >= 70000 |
202 | 123 | #define ADD_INDEX_INT64(_zv, _index, _value) \
|
203 | 124 | if ((_value) > INT32_MAX || (_value) < INT32_MIN) { \
|
204 | 125 | zval zchild; \
|
|
223 | 144 | } else { \
|
224 | 145 | add_assoc_long((_zv), (_key), (_value)); \
|
225 | 146 | }
|
226 |
| -#else /* PHP_VERSION_ID < 70000 */ |
227 |
| -#define ADD_INDEX_INT64(_zv, _index, _value) \ |
228 |
| - if ((_value) > INT32_MAX || (_value) < INT32_MIN) { \ |
229 |
| - zval* zchild = NULL; \ |
230 |
| - TSRMLS_FETCH(); \ |
231 |
| - MAKE_STD_ZVAL(zchild); \ |
232 |
| - php_phongo_bson_new_int64(zchild, (_value) TSRMLS_CC); \ |
233 |
| - add_index_zval((_zv), (_index), zchild); \ |
234 |
| - } else { \ |
235 |
| - add_index_long((_zv), (_index), (_value)); \ |
236 |
| - } |
237 |
| -#define ADD_NEXT_INDEX_INT64(_zv, _value) \ |
238 |
| - if ((_value) > INT32_MAX || (_value) < INT32_MIN) { \ |
239 |
| - zval* zchild = NULL; \ |
240 |
| - TSRMLS_FETCH(); \ |
241 |
| - MAKE_STD_ZVAL(zchild); \ |
242 |
| - php_phongo_bson_new_int64(zchild, (_value) TSRMLS_CC); \ |
243 |
| - add_next_index_zval((_zv), zchild); \ |
244 |
| - } else { \ |
245 |
| - add_next_index_long((_zv), (_value)); \ |
246 |
| - } |
247 |
| -#define ADD_ASSOC_INT64(_zv, _key, _value) \ |
248 |
| - if ((_value) > INT32_MAX || (_value) < INT32_MIN) { \ |
249 |
| - zval* zchild = NULL; \ |
250 |
| - TSRMLS_FETCH(); \ |
251 |
| - MAKE_STD_ZVAL(zchild); \ |
252 |
| - php_phongo_bson_new_int64(zchild, (_value) TSRMLS_CC); \ |
253 |
| - add_assoc_zval((_zv), (_key), zchild); \ |
254 |
| - } else { \ |
255 |
| - add_assoc_long((_zv), (_key), (_value)); \ |
256 |
| - } |
257 |
| -#endif /* PHP_VERSION_ID */ |
258 | 147 | #define ZVAL_INT64(_zv, _value) \
|
259 | 148 | if ((_value) > INT32_MAX || (_value) < INT32_MIN) { \
|
260 | 149 | php_phongo_bson_new_int64((_zv), (_value) TSRMLS_CC); \
|
|
0 commit comments