}
static zval *get_option(zval *options, const char *name_str, size_t name_len)
{
- zval *val;
+ zval *val = NULL;
if (Z_TYPE_P(options) == IS_OBJECT) {
val = zend_read_property(Z_OBJCE_P(options), options, name_str, name_len, 0);
- } else {
+ } else if (Z_TYPE_P(options) == IS_ARRAY) {
val = zend_symtable_str_find(Z_ARRVAL_P(options), name_str, name_len);
+ } else {
+ abort();
}
if (val) {
Z_TRY_ADDREF_P(val);
body = body_obj->body;
}
- zval_ptr_dtor(zbody);
+ Z_TRY_DELREF_P(zbody);
}
return body;
request = request_obj->message;
}
- zval_ptr_dtor(zrequest);
+ Z_TRY_DELREF_P(zrequest);
}
return request;
}
array_init_size(zcookies_set, zend_hash_num_elements(&obj->list->cookies));
} else {
+ Z_ADDREF_P(zcookies_set);
SEPARATE_ZVAL(zcookies_set);
}
zval *tmp = zoption;
SEPARATE_ZVAL(tmp);
convert_to_array(tmp);
- zval_ptr_dtor(zoption);
zoption = tmp;
}
zend_ulong index = 0;
zend_hash_internal_pointer_reset(result);
- if (HASH_KEY_IS_STRING == zend_hash_get_current_key_ex(result, &key_str, &index, NULL)) {
+ if (HASH_KEY_IS_STRING == zend_hash_get_current_key(result, &key_str, &index)) {
if (zend_string_equals_literal(key_str, "gzip")) {
if (!(r->content.encoder = php_http_encoding_stream_init(NULL, php_http_encoding_stream_get_deflate_ops(), PHP_HTTP_DEFLATE_TYPE_GZIP))) {
ret = FAILURE;