X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_api.h;h=98038b3e4ec87d83549c44915bd362ca4ce478eb;hp=190db2355b8421efb40333b7f4809d15b40689ee;hb=93e726eb9c892c26bc5ddb5417d0ac67ef691147;hpb=b3afcfc70bf06c062115f4994cc04fc8c6e4aa67 diff --git a/php_http_api.h b/php_http_api.h index 190db23..98038b3 100644 --- a/php_http_api.h +++ b/php_http_api.h @@ -306,13 +306,13 @@ static inline void _zval_free(zval **z) } typedef struct _HashKey { - int type; - int dup; char *str; uint len; ulong num; + uint dup:1; + uint type:31; } HashKey; -#define initHashKey(dup) {0, (dup), NULL, 0, 0} +#define initHashKey(dup) {NULL, 0, 0, (dup), 0} #define FOREACH_VAL(pos, array, val) FOREACH_HASH_VAL(pos, Z_ARRVAL_P(array), val) #define FOREACH_HASH_VAL(pos, hash, val) \ @@ -323,13 +323,13 @@ typedef struct _HashKey { #define FOREACH_KEY(pos, array, key) FOREACH_HASH_KEY(pos, Z_ARRVAL_P(array), key) #define FOREACH_HASH_KEY(pos, hash, _key) \ for ( zend_hash_internal_pointer_reset_ex(hash, &pos); \ - ((_key).type = zend_hash_get_current_key_ex(hash, &(_key).str, &(_key).len, &(_key).num, (_key).dup, &pos)) != HASH_KEY_NON_EXISTANT; \ + ((_key).type = zend_hash_get_current_key_ex(hash, &(_key).str, &(_key).len, &(_key).num, (zend_bool) (_key).dup, &pos)) != HASH_KEY_NON_EXISTANT; \ zend_hash_move_forward_ex(hash, &pos)) \ #define FOREACH_KEYVAL(pos, array, key, val) FOREACH_HASH_KEYVAL(pos, Z_ARRVAL_P(array), key, val) #define FOREACH_HASH_KEYVAL(pos, hash, _key, val) \ for ( zend_hash_internal_pointer_reset_ex(hash, &pos); \ - ((_key).type = zend_hash_get_current_key_ex(hash, &(_key).str, &(_key).len, &(_key).num, (_key).dup, &pos)) != HASH_KEY_NON_EXISTANT && \ + ((_key).type = zend_hash_get_current_key_ex(hash, &(_key).str, &(_key).len, &(_key).num, (zend_bool) (_key).dup, &pos)) != HASH_KEY_NON_EXISTANT && \ zend_hash_get_current_data_ex(hash, (void *) &val, &pos) == SUCCESS; \ zend_hash_move_forward_ex(hash, &pos))