X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fphp_http_misc.h;h=19eb75cb894276f3021452b330e413dbea2e7c61;hb=114dee054de7fd8b5921b406c5fb69e2cbade9d6;hp=99660ea98ada5caf0ddc74105c3e72d0b60a17a7;hpb=e44e3ceb60817cfdd17945a3f6043816e134aa75;p=m6w6%2Fext-http diff --git a/src/php_http_misc.h b/src/php_http_misc.h index 99660ea..19eb75c 100644 --- a/src/php_http_misc.h +++ b/src/php_http_misc.h @@ -102,11 +102,48 @@ static inline const char *php_http_locate_bin_eol(const char *bin, size_t len, i # define HASH_OF(p) ((HashTable*)(Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties(Z_OBJ_P(p)) : NULL)))) #endif +#if PHP_VERSION_ID >= 80100 +# define php_http_mem_stream_open(type, zstr) php_stream_memory_open((type), (zstr)) +#else +# define php_http_mem_stream_open(type, zstr) php_stream_memory_open((type), (zstr)->val, (zstr)->len) +#endif #define HT_IS_RECURSIVE(ht) GC_IS_RECURSIVE(ht) #define HT_PROTECT_RECURSION(ht) GC_PROTECT_RECURSION(ht) #define HT_UNPROTECT_RECURSION(ht) GC_UNPROTECT_RECURSION(ht) +#ifndef convert_to_explicit_type +# define convert_to_explicit_type(pzv, type) \ + do { \ + switch (type) { \ + case IS_NULL: \ + convert_to_null(pzv); \ + break; \ + case IS_LONG: \ + convert_to_long(pzv); \ + break; \ + case IS_DOUBLE: \ + convert_to_double(pzv); \ + break; \ + case _IS_BOOL: \ + convert_to_boolean(pzv); \ + break; \ + case IS_ARRAY: \ + convert_to_array(pzv); \ + break; \ + case IS_OBJECT: \ + convert_to_object(pzv); \ + break; \ + case IS_STRING: \ + convert_to_string(pzv); \ + break; \ + default: \ + assert(0); \ + break; \ + } \ + } while (0); + +#endif static inline void *PHP_HTTP_OBJ(zend_object *zo, zval *zv) { if (!zo) {