X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_misc.c;h=8e2227da1db0ec1a17135123ff09f7e657d719d0;hp=8fcb82e2449f5f4a2dbb982b5a50a3e1ef60061f;hb=046973e332c1475f9bf7717af9d33a75283deb37;hpb=b47a52f0a3db907095882f8ed9015a1bfc76537e diff --git a/php_http_misc.c b/php_http_misc.c index 8fcb82e..8e2227d 100644 --- a/php_http_misc.c +++ b/php_http_misc.c @@ -80,8 +80,8 @@ int php_http_match(const char *haystack_str, const char *needle_str, int flags) } } - STR_FREE(haystack); - STR_FREE(needle); + PTR_FREE(haystack); + PTR_FREE(needle); } return result; @@ -115,7 +115,7 @@ char *php_http_pretty_key(register char *key, size_t key_len, zend_bool uctitle, size_t php_http_boundary(char *buf, size_t buf_len TSRMLS_DC) { - return snprintf(buf, buf_len, "%15.15F", PHP_HTTP_G->env.request.time * php_combined_lcg(TSRMLS_C)); + return snprintf(buf, buf_len, "%15.15F", sapi_get_request_time(TSRMLS_C) * php_combined_lcg(TSRMLS_C)); } int php_http_select_str(const char *cmp, int argc, ...) @@ -188,8 +188,10 @@ int php_http_array_apply_append_func(void *pDest TSRMLS_DC, int num_args, va_lis if ((flags & ARRAY_JOIN_PRETTIFY) && hash_key->nKeyLength) { key = php_http_pretty_key(estrndup(hash_key->arKey, hash_key->nKeyLength - 1), hash_key->nKeyLength - 1, 1, 1); zend_hash_find(dst, key, hash_key->nKeyLength, (void *) &data); - } else { + } else if (hash_key->nKeyLength) { zend_hash_quick_find(dst, hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void *) &data); + } else { + zend_hash_index_find(dst, hash_key->h, (void *) &data); } if (flags & ARRAY_JOIN_STRINGIFY) { @@ -205,8 +207,10 @@ int php_http_array_apply_append_func(void *pDest TSRMLS_DC, int num_args, va_lis add_next_index_zval(*data, value); } else if (key) { zend_symtable_update(dst, key, hash_key->nKeyLength, &value, sizeof(zval *), NULL); - } else { + } else if (hash_key->nKeyLength) { zend_hash_quick_add(dst, hash_key->arKey, hash_key->nKeyLength, hash_key->h, &value, sizeof(zval *), NULL); + } else { + zend_hash_index_update(dst, hash_key->h, (void *) &value, sizeof(zval *), NULL); } if (key) { @@ -238,8 +242,10 @@ int php_http_array_apply_merge_func(void *pDest TSRMLS_DC, int num_args, va_list key = php_http_pretty_key(estrndup(hash_key->arKey, hash_key->nKeyLength - 1), hash_key->nKeyLength - 1, 1, 1); zend_hash_update(dst, key, hash_key->nKeyLength, (void *) &value, sizeof(zval *), NULL); efree(key); - } else { + } else if (hash_key->nKeyLength) { zend_hash_quick_update(dst, hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void *) &value, sizeof(zval *), NULL); + } else { + zend_hash_index_update(dst, hash_key->h, (void *) &value, sizeof(zval *), NULL); } }