array_init(&entry);
- Z_ADDREF_P(tmp_name);
+ Z_TRY_ADDREF_P(tmp_name);
add_assoc_zval_ex(&entry, ZEND_STRL("file"), tmp_name);
- Z_ADDREF_P(zname);
+ Z_TRY_ADDREF_P(zname);
add_assoc_zval_ex(&entry, ZEND_STRL("name"), zname);
- Z_ADDREF_P(zsize);
+ Z_TRY_ADDREF_P(zsize);
add_assoc_zval_ex(&entry, ZEND_STRL("size"), zsize);
- Z_ADDREF_P(ztype);
+ Z_TRY_ADDREF_P(ztype);
add_assoc_zval_ex(&entry, ZEND_STRL("type"), ztype);
- Z_ADDREF_P(zerror);
+ Z_TRY_ADDREF_P(zerror);
add_assoc_zval_ex(&entry, ZEND_STRL("error"), zerror);
if (file_key->key && (array = zend_hash_find(Z_ARRVAL_P(zfiles), file_key->key))) {
return ZEND_HASH_APPLY_KEEP;
}
-static int grab_files(zval *val TSRMLS_DC, int argc, va_list argv, zend_hash_key *key)
+static int grab_files(zval *val, int argc, va_list argv, zend_hash_key *key)
{
zval *zfiles, *name, *tmp_name, *error, *type, *size;
return ZEND_HASH_APPLY_STOP;
}
} else {
- zval *tmp;
+ zval *tmp, entry;
- SEPARATE_ZVAL(val);
+ ZVAL_DUP(&entry, val);
if ((tmp = zend_hash_str_find(Z_ARRVAL_P(val), ZEND_STRL("tmp_name")))) {
Z_ADDREF_P(tmp);
- add_assoc_zval_ex(val, ZEND_STRL("file"), tmp);
- zend_hash_str_del(Z_ARRVAL_P(val), ZEND_STRL("tmp_name"));
+ add_assoc_zval_ex(&entry, ZEND_STRL("file"), tmp);
+ zend_hash_str_del(Z_ARRVAL(entry), ZEND_STRL("tmp_name"));
}
if (key->key) {
- zend_hash_update(Z_ARRVAL_P(zfiles), key->key, val);
+ zend_hash_update(Z_ARRVAL_P(zfiles), key->key, &entry);
} else {
- zend_hash_index_update(Z_ARRVAL_P(zfiles), key->h, val);
+ zend_hash_index_update(Z_ARRVAL_P(zfiles), key->h, &entry);
}
}
}
zend_fcall_info_cache fcc; \
zval rv, mn, *args = ecalloc(sizeof(zval), ZEND_NUM_ARGS()); \
zval *this_ptr = getThis(); \
- zval *qs = zend_read_property(Z_OBJCE_P(this_ptr), this_ptr, ZEND_STRL(prop), 0); \
+ zval qs_tmp, *qs = zend_read_property(Z_OBJCE_P(this_ptr), this_ptr, ZEND_STRL(prop), 0, &qs_tmp); \
\
+ ZVAL_NULL(&rv); \
array_init(&mn); \
Z_TRY_ADDREF_P(qs); \
add_next_index_zval(&mn, qs); \
add_next_index_stringl(&mn, ZEND_STRL("get")); \
zend_fcall_info_init(&mn, 0, &fci, &fcc, NULL, NULL); \
zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args); \
- zend_fcall_info_argp(&fci TSRMLS_CC, ZEND_NUM_ARGS(), args); \
+ zend_fcall_info_argp(&fci, ZEND_NUM_ARGS(), args); \
zend_fcall_info_call(&fci, &fcc, &rv, NULL); \
zend_fcall_info_args_clear(&fci, 1); \
efree(args); \
if (ZEND_NUM_ARGS()) {
call_querystring_get("form");
} else {
- zval *zform = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("form"), 0);
- RETURN_ZVAL_FAST(zform);
+ zval zform_tmp, *zform = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("form"), 0, &zform_tmp);
+ RETURN_ZVAL(zform, 1, 0);
}
}
if (ZEND_NUM_ARGS()) {
call_querystring_get("query");
} else {
- zval *zquery = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("query"), 0);
- RETURN_ZVAL_FAST(zquery);
+ zval zquery_tmp, *zquery = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("query"), 0, &zquery_tmp);
+ RETURN_ZVAL(zquery, 1, 0);
}
}
if (ZEND_NUM_ARGS()) {
call_querystring_get("cookie");
} else {
- zval *zcookie = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("cookie"), 0);
- RETURN_ZVAL_FAST(zcookie);
+ zval zcookie_tmp, *zcookie = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("cookie"), 0, &zcookie_tmp);
+ RETURN_ZVAL(zcookie, 1, 0);
}
}
static PHP_METHOD(HttpEnvRequest, getFiles)
{
if (SUCCESS == zend_parse_parameters_none()) {
- zval *zfiles = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("files"), 0);
- RETURN_ZVAL_FAST(zfiles);
+ zval zfiles_tmp, *zfiles = zend_read_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("files"), 0, &zfiles_tmp);
+ RETURN_ZVAL(zfiles, 1, 0);
}
}