|
97 | 97 | # define ADD_ASSOC_NULL_EX(_zv, _key) add_assoc_null_ex(_zv, ZEND_STRL(_key)); |
98 | 98 | # define ADD_ASSOC_BOOL_EX(_zv, _key, _value) add_assoc_bool_ex(_zv, ZEND_STRL(_key), _value); |
99 | 99 | # define ADD_INDEX_STRINGL(_zv, _ind, _value, _len) add_index_stringl(_zv, _ind, _value, _len); |
| 100 | +# define ADD_NEXT_INDEX_STRINGL(_zv, _value, _len) add_next_index_stringl(_zv, _value, _len); |
100 | 101 | # define phongo_free_object_arg zend_object |
101 | 102 | # define phongo_zpp_char_len size_t |
102 | 103 | # define ZEND_HASH_APPLY_COUNT(ht) (ht)->u.v.nApplyCount |
|
126 | 127 | # define ADD_ASSOC_NULL_EX(_zv, _key) add_assoc_null_ex(_zv, ZEND_STRS(_key)); |
127 | 128 | # define ADD_ASSOC_BOOL_EX(_zv, _key, _value) add_assoc_bool_ex(_zv, ZEND_STRS(_key), _value); |
128 | 129 | # define ADD_INDEX_STRINGL(_zv, _ind, _value, _len) add_index_stringl(_zv, _ind, _value, _len, 0); |
| 130 | +# define ADD_NEXT_INDEX_STRINGL(_zv, _value, _len) add_next_index_stringl(_zv, _value, _len, 1); |
129 | 131 | # define Z_PHPDATE_P(object) ((php_date_obj*)zend_object_store_get_object(object TSRMLS_CC)) |
130 | 132 | # define Z_ISUNDEF(x) !x |
131 | 133 | # define phongo_free_object_arg void |
|
143 | 145 |
|
144 | 146 | #if SIZEOF_PHONGO_LONG == 8 |
145 | 147 | # define ADD_INDEX_INT64(zval, index, value) add_index_long(zval, index, value) |
| 148 | +# define ADD_NEXT_INDEX_INT64(zval, value) add_next_index_long(zval, value) |
146 | 149 | # define ADD_ASSOC_INT64(zval, key, value) add_assoc_long(zval, key, value) |
147 | 150 | #elif SIZEOF_PHONGO_LONG == 4 |
148 | 151 | # define ADD_INDEX_INT64(zval, index, value) \ |
|
151 | 154 | } else { \ |
152 | 155 | add_index_long(zval, index, val); \ |
153 | 156 | } |
| 157 | +# define ADD_NEXT_INDEX_INT64(zval, value) \ |
| 158 | + if (value > INT32_MAX || value < INT32_MIN) { \ |
| 159 | + phongo_throw_exception(PHONGO_ERROR_INVALID_ARGUMENT TSRMLS_CC, "Integer overflow detected on your platform: %lld", value); \ |
| 160 | + } else { \ |
| 161 | + add_next_index_long(zval, val); \ |
| 162 | + } |
154 | 163 | # define ADD_ASSOC_INT64(zval, key, value) \ |
155 | 164 | if (value > INT32_MAX || value < INT32_MIN) { \ |
156 | 165 | phongo_throw_exception(PHONGO_ERROR_INVALID_ARGUMENT TSRMLS_CC, "Integer overflow detected on your platform: %lld", value); \ |
|
0 commit comments