mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Merge branch 'PHP-7.4'
* PHP-7.4: Cheaper checks for exceptions thrown from __toString()
This commit is contained in:
commit
e029cc4dd4
@ -663,8 +663,9 @@ ZEND_FUNCTION(error_reporting)
|
||||
|
||||
old_error_reporting = EG(error_reporting);
|
||||
if (ZEND_NUM_ARGS() != 0) {
|
||||
zend_string *new_val = zval_get_string(err);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
zend_string *new_val = zval_try_get_string(err);
|
||||
|
||||
if (UNEXPECTED(!new_val)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1539,8 +1539,8 @@ static zend_never_inline void zend_assign_to_string_offset(zval *str, zval *dim,
|
||||
|
||||
if (Z_TYPE_P(value) != IS_STRING) {
|
||||
/* Convert to string, just the time to pick the 1st byte */
|
||||
zend_string *tmp = zval_get_string_func(value);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
zend_string *tmp = zval_try_get_string_func(value);
|
||||
if (UNEXPECTED(!tmp)) {
|
||||
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
|
||||
ZVAL_UNDEF(EX_VAR(opline->result.var));
|
||||
}
|
||||
@ -3989,11 +3989,13 @@ static zend_never_inline zend_op_array* ZEND_FASTCALL zend_include_or_eval(zval
|
||||
|
||||
ZVAL_UNDEF(&tmp_inc_filename);
|
||||
if (Z_TYPE_P(inc_filename) != IS_STRING) {
|
||||
ZVAL_STR(&tmp_inc_filename, zval_get_string_func(inc_filename));
|
||||
inc_filename = &tmp_inc_filename;
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
zend_string *tmp = zval_try_get_string_func(inc_filename);
|
||||
|
||||
if (UNEXPECTED(!tmp)) {
|
||||
return NULL;
|
||||
}
|
||||
ZVAL_STR(&tmp_inc_filename, tmp);
|
||||
inc_filename = &tmp_inc_filename;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
|
@ -590,14 +590,15 @@ try_again:
|
||||
|
||||
ZEND_API zend_bool ZEND_FASTCALL _try_convert_to_string(zval *op)
|
||||
{
|
||||
if (Z_TYPE_P(op) != IS_STRING) {
|
||||
zend_string *str = zval_get_string_func(op);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
return 0;
|
||||
}
|
||||
zval_ptr_dtor(op);
|
||||
ZVAL_STR(op, str);
|
||||
zend_string *str;
|
||||
|
||||
ZEND_ASSERT(Z_TYPE_P(op) != IS_STRING);
|
||||
str = zval_try_get_string_func(op);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return 0;
|
||||
}
|
||||
zval_ptr_dtor(op);
|
||||
ZVAL_STR(op, str);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -848,7 +849,7 @@ try_again:
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API zend_string* ZEND_FASTCALL zval_get_string_func(zval *op) /* {{{ */
|
||||
static zend_always_inline zend_string* __zval_get_string_func(zval *op, zend_bool try) /* {{{ */
|
||||
{
|
||||
try_again:
|
||||
switch (Z_TYPE_P(op)) {
|
||||
@ -880,7 +881,7 @@ try_again:
|
||||
if (!EG(exception)) {
|
||||
zend_throw_error(NULL, "Object of class %s could not be converted to string", ZSTR_VAL(Z_OBJCE_P(op)->name));
|
||||
}
|
||||
return ZSTR_EMPTY_ALLOC();
|
||||
return try ? NULL : ZSTR_EMPTY_ALLOC();
|
||||
}
|
||||
case IS_REFERENCE:
|
||||
op = Z_REFVAL_P(op);
|
||||
@ -893,13 +894,15 @@ try_again:
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API zend_string* ZEND_FASTCALL zval_get_string_func(zval *op) /* {{{ */
|
||||
{
|
||||
return __zval_get_string_func(op, 0);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API zend_string* ZEND_FASTCALL zval_try_get_string_func(zval *op) /* {{{ */
|
||||
{
|
||||
zend_string *str = zval_get_string_func(op);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
return NULL;
|
||||
}
|
||||
return str;
|
||||
return __zval_get_string_func(op, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
@ -1676,8 +1676,8 @@ ZEND_VM_HELPER(zend_fetch_var_address_helper, CONST|TMPVAR|CV, UNUSED, int type)
|
||||
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
FREE_OP1();
|
||||
ZVAL_UNDEF(EX_VAR(opline->result.var));
|
||||
HANDLE_EXCEPTION();
|
||||
@ -5952,8 +5952,8 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED, VAR_FETCH)
|
||||
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
varname = ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
FREE_OP1();
|
||||
HANDLE_EXCEPTION();
|
||||
}
|
||||
|
@ -8500,8 +8500,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
|
||||
if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
|
||||
ZVAL_UNDEF(EX_VAR(opline->result.var));
|
||||
HANDLE_EXCEPTION();
|
||||
@ -9011,8 +9011,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HA
|
||||
if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
varname = ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
|
||||
HANDLE_EXCEPTION();
|
||||
}
|
||||
@ -16009,8 +16009,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
|
||||
if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
zval_ptr_dtor_nogc(free_op1);
|
||||
ZVAL_UNDEF(EX_VAR(opline->result.var));
|
||||
HANDLE_EXCEPTION();
|
||||
@ -16134,8 +16134,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_H
|
||||
if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
varname = ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
zval_ptr_dtor_nogc(free_op1);
|
||||
HANDLE_EXCEPTION();
|
||||
}
|
||||
@ -48432,8 +48432,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
|
||||
if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
|
||||
ZVAL_UNDEF(EX_VAR(opline->result.var));
|
||||
HANDLE_EXCEPTION();
|
||||
@ -49259,8 +49259,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDL
|
||||
if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) {
|
||||
varname = ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
name = zval_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(EG(exception))) {
|
||||
name = zval_try_get_tmp_string(varname, &tmp_name);
|
||||
if (UNEXPECTED(!name)) {
|
||||
|
||||
HANDLE_EXCEPTION();
|
||||
}
|
||||
|
@ -160,8 +160,8 @@ int dom_attr_value_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
@ -104,8 +104,8 @@ int dom_characterdata_data_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
@ -337,8 +337,8 @@ int dom_document_encoding_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@ -434,8 +434,8 @@ int dom_document_version_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@ -665,8 +665,8 @@ int dom_document_document_uri_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
@ -330,8 +330,8 @@ int dom_node_node_value_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@ -724,8 +724,8 @@ int dom_node_prefix_write(dom_object *obj, zval *newval)
|
||||
nsnode = xmlDocGetRootElement(nodep->doc);
|
||||
}
|
||||
}
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@ -861,8 +861,8 @@ int dom_node_text_content_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
@ -138,8 +138,8 @@ int dom_processinginstruction_data_write(dom_object *obj, zval *newval)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
str = zval_get_string(newval);
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(newval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
@ -2286,8 +2286,8 @@ PHP_FUNCTION(iconv_mime_encode)
|
||||
|
||||
if ((pzval = zend_hash_str_find_deref(Z_ARRVAL_P(pref), "line-break-chars", sizeof("line-break-chars") - 1)) != NULL) {
|
||||
if (Z_TYPE_P(pzval) != IS_STRING) {
|
||||
tmp_str = zval_get_string_func(pzval);
|
||||
if (EG(exception)) {
|
||||
tmp_str = zval_try_get_string_func(pzval);
|
||||
if (UNEXPECTED(!tmp_str)) {
|
||||
return;
|
||||
}
|
||||
lfchars = ZSTR_VAL(tmp_str);
|
||||
|
@ -807,8 +807,8 @@ php_mb_parse_encoding_array(zval *array, const mbfl_encoding ***return_list, siz
|
||||
bauto = 0;
|
||||
n = 0;
|
||||
ZEND_HASH_FOREACH_VAL(target_hash, hash_entry) {
|
||||
zend_string *encoding_str = zval_get_string(hash_entry);
|
||||
if (EG(exception)) {
|
||||
zend_string *encoding_str = zval_try_get_string(hash_entry);
|
||||
if (UNEXPECTED(!encoding_str)) {
|
||||
ret = FAILURE;
|
||||
break;
|
||||
}
|
||||
@ -3243,8 +3243,8 @@ PHP_FUNCTION(mb_convert_encoding)
|
||||
_from_encodings = NULL;
|
||||
|
||||
ZEND_HASH_FOREACH_VAL(target_hash, hash_entry) {
|
||||
zend_string *encoding_str = zval_get_string(hash_entry);
|
||||
if (EG(exception)) {
|
||||
zend_string *encoding_str = zval_try_get_string(hash_entry);
|
||||
if (UNEXPECTED(!encoding_str)) {
|
||||
if (_from_encodings) {
|
||||
efree(_from_encodings);
|
||||
}
|
||||
|
@ -1930,8 +1930,8 @@ php_oci_bind *php_oci_bind_array_helper_date(zval *var, zend_long max_table_leng
|
||||
bind->array.element_lengths[i] = sizeof(OCIDate);
|
||||
}
|
||||
if ((i < bind->array.current_length) && (entry = zend_hash_get_current_data(hash)) != NULL) {
|
||||
zend_string *entry_str = zval_get_string(entry);
|
||||
if (EG(exception)) {
|
||||
zend_string *entry_str = zval_try_get_string(entry);
|
||||
if (UNEXPECTED(!entry_str)) {
|
||||
efree(bind->array.element_lengths);
|
||||
efree(bind->array.elements);
|
||||
efree(bind);
|
||||
|
@ -2675,8 +2675,8 @@ static X509_STORE *php_openssl_setup_verify(zval *calist)
|
||||
|
||||
if (calist && (Z_TYPE_P(calist) == IS_ARRAY)) {
|
||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(calist), item) {
|
||||
zend_string *str = zval_get_string(item);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(item);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -3160,8 +3160,8 @@ static int php_openssl_make_REQ(struct php_x509_request * req, X509_REQ * csr, z
|
||||
if (strindex) {
|
||||
int nid = OBJ_txt2nid(ZSTR_VAL(strindex));
|
||||
if (nid != NID_undef) {
|
||||
zend_string *str_item = zval_get_string(item);
|
||||
if (EG(exception)) {
|
||||
zend_string *str_item = zval_try_get_string(item);
|
||||
if (UNEXPECTED(!str_item)) {
|
||||
return FAILURE;
|
||||
}
|
||||
if (!X509_NAME_add_entry_by_NID(subj, nid, MBSTRING_UTF8,
|
||||
@ -3243,8 +3243,8 @@ static int php_openssl_make_REQ(struct php_x509_request * req, X509_REQ * csr, z
|
||||
|
||||
nid = OBJ_txt2nid(ZSTR_VAL(strindex));
|
||||
if (nid != NID_undef) {
|
||||
zend_string *str_item = zval_get_string(item);
|
||||
if (EG(exception)) {
|
||||
zend_string *str_item = zval_try_get_string(item);
|
||||
if (UNEXPECTED(!str_item)) {
|
||||
return FAILURE;
|
||||
}
|
||||
if (!X509_NAME_add_entry_by_NID(subj, nid, MBSTRING_UTF8, (unsigned char*)ZSTR_VAL(str_item), -1, -1, 0)) {
|
||||
@ -5387,8 +5387,8 @@ PHP_FUNCTION(openssl_pkcs7_encrypt)
|
||||
/* tack on extra headers */
|
||||
if (zheaders) {
|
||||
ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(zheaders), strindex, zcertval) {
|
||||
zend_string *str = zval_get_string(zcertval);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(zcertval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
goto clean_exit;
|
||||
}
|
||||
if (strindex) {
|
||||
@ -5607,8 +5607,8 @@ PHP_FUNCTION(openssl_pkcs7_sign)
|
||||
int ret;
|
||||
|
||||
ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(zheaders), strindex, hval) {
|
||||
zend_string *str = zval_get_string(hval);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(hval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
goto clean_exit;
|
||||
}
|
||||
if (strindex) {
|
||||
|
@ -1484,8 +1484,8 @@ static int php_openssl_enable_server_sni(php_stream *stream, php_openssl_netstre
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
local_cert_str = zval_get_string(local_cert);
|
||||
if (EG(exception)) {
|
||||
local_cert_str = zval_try_get_string(local_cert);
|
||||
if (UNEXPECTED(!local_cert_str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
if (!VCWD_REALPATH(ZSTR_VAL(local_cert_str), resolved_cert_path_buff)) {
|
||||
@ -1506,8 +1506,8 @@ static int php_openssl_enable_server_sni(php_stream *stream, php_openssl_netstre
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
local_pk_str = zval_get_string(local_pk);
|
||||
if (EG(exception)) {
|
||||
local_pk_str = zval_try_get_string(local_pk);
|
||||
if (UNEXPECTED(!local_pk_str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
if (!VCWD_REALPATH(ZSTR_VAL(local_pk_str), resolved_pk_path_buff)) {
|
||||
|
@ -465,8 +465,8 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
|
||||
|
||||
case PDO_FB_ATTR_DATE_FORMAT:
|
||||
{
|
||||
zend_string *str = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return 0;
|
||||
}
|
||||
if (H->date_format) {
|
||||
@ -479,8 +479,8 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
|
||||
|
||||
case PDO_FB_ATTR_TIME_FORMAT:
|
||||
{
|
||||
zend_string *str = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return 0;
|
||||
}
|
||||
if (H->time_format) {
|
||||
@ -493,8 +493,8 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
|
||||
|
||||
case PDO_FB_ATTR_TIMESTAMP_FORMAT:
|
||||
{
|
||||
zend_string *str = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return 0;
|
||||
}
|
||||
if (H->timestamp_format) {
|
||||
|
@ -460,8 +460,8 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
|
||||
case PDO_OCI_ATTR_ACTION:
|
||||
{
|
||||
#if (OCI_MAJOR_VERSION >= 10)
|
||||
zend_string *action = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *action = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!action)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -481,8 +481,8 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
|
||||
case PDO_OCI_ATTR_CLIENT_INFO:
|
||||
{
|
||||
#if (OCI_MAJOR_VERSION >= 10)
|
||||
zend_string *client_info = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *client_info = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!client_info)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -502,8 +502,8 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
|
||||
case PDO_OCI_ATTR_CLIENT_IDENTIFIER:
|
||||
{
|
||||
#if (OCI_MAJOR_VERSION >= 10)
|
||||
zend_string *identifier = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *identifier = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!identifier)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -523,8 +523,8 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
|
||||
case PDO_OCI_ATTR_MODULE:
|
||||
{
|
||||
#if (OCI_MAJOR_VERSION >= 10)
|
||||
zend_string *module = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
zend_string *module = zval_try_get_string(val);
|
||||
if (UNEXPECTED(!module)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -4284,8 +4284,8 @@ PHP_FUNCTION(pg_copy_from)
|
||||
PQclear(pgsql_result);
|
||||
#if HAVE_PQPUTCOPYDATA
|
||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pg_rows), value) {
|
||||
zend_string *tmp = zval_get_string(value);
|
||||
if (EG(exception)) {
|
||||
zend_string *tmp = zval_try_get_string(value);
|
||||
if (UNEXPECTED(!tmp)) {
|
||||
return;
|
||||
}
|
||||
query = (char *)emalloc(ZSTR_LEN(tmp) + 2);
|
||||
@ -4309,8 +4309,8 @@ PHP_FUNCTION(pg_copy_from)
|
||||
}
|
||||
#else
|
||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pg_rows), value) {
|
||||
zend_string *tmp = zval_get_string(value);
|
||||
if (EG(exception)) {
|
||||
zend_string *tmp = zval_try_get_string(value);
|
||||
if (UNEXPECTED(!tmp)) {
|
||||
return;
|
||||
}
|
||||
query = (char *)emalloc(ZSTR_LEN(tmp) + 2);
|
||||
@ -5173,8 +5173,8 @@ PHP_FUNCTION(pg_send_execute)
|
||||
if (Z_TYPE_P(tmp) == IS_NULL) {
|
||||
params[i] = NULL;
|
||||
} else {
|
||||
zend_string *tmp_str = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
zend_string *tmp_str = zval_try_get_string(tmp);
|
||||
if (UNEXPECTED(!tmp)) {
|
||||
_php_pgsql_free_params(params, num_params);
|
||||
return;
|
||||
}
|
||||
|
@ -2275,8 +2275,8 @@ ZEND_METHOD(reflection_parameter, __construct)
|
||||
if (Z_TYPE_P(classref) == IS_OBJECT) {
|
||||
ce = Z_OBJCE_P(classref);
|
||||
} else {
|
||||
name = zval_get_string(classref);
|
||||
if (EG(exception)) {
|
||||
name = zval_try_get_string(classref);
|
||||
if (UNEXPECTED(!name)) {
|
||||
return;
|
||||
}
|
||||
if ((ce = zend_lookup_class(name)) == NULL) {
|
||||
@ -2288,8 +2288,8 @@ ZEND_METHOD(reflection_parameter, __construct)
|
||||
zend_string_release(name);
|
||||
}
|
||||
|
||||
name = zval_get_string(method);
|
||||
if (EG(exception)) {
|
||||
name = zval_try_get_string(method);
|
||||
if (UNEXPECTED(!name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -258,11 +258,12 @@ long_dim:
|
||||
name = NULL;
|
||||
} else {
|
||||
if (Z_TYPE_P(member) != IS_STRING) {
|
||||
ZVAL_STR(&tmp_zv, zval_get_string_func(member));
|
||||
member = &tmp_zv;
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string_func(member);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return &EG(uninitialized_zval);
|
||||
}
|
||||
ZVAL_STR(&tmp_zv, str);
|
||||
member = &tmp_zv;
|
||||
}
|
||||
name = Z_STRVAL_P(member);
|
||||
}
|
||||
@ -459,8 +460,8 @@ long_dim:
|
||||
}
|
||||
} else {
|
||||
if (Z_TYPE_P(member) != IS_STRING) {
|
||||
trim_str = zval_get_string_func(member);
|
||||
if (EG(exception)) {
|
||||
trim_str = zval_try_get_string_func(member);
|
||||
if (UNEXPECTED(!trim_str)) {
|
||||
return &EG(error_zval);
|
||||
}
|
||||
|
||||
@ -726,11 +727,12 @@ static int sxe_prop_dim_exists(zend_object *object, zval *member, int check_empt
|
||||
zval tmp_zv;
|
||||
|
||||
if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
|
||||
ZVAL_STR(&tmp_zv, zval_get_string_func(member));
|
||||
member = &tmp_zv;
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string_func(member);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return 0;
|
||||
}
|
||||
ZVAL_STR(&tmp_zv, str);
|
||||
member = &tmp_zv;
|
||||
}
|
||||
|
||||
sxe = php_sxe_fetch_object(object);
|
||||
@ -850,11 +852,12 @@ static void sxe_prop_dim_delete(zend_object *object, zval *member, zend_bool ele
|
||||
int test = 0;
|
||||
|
||||
if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
|
||||
ZVAL_STR(&tmp_zv, zval_get_string_func(member));
|
||||
member = &tmp_zv;
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string_func(member);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return;
|
||||
}
|
||||
ZVAL_STR(&tmp_zv, str);
|
||||
member = &tmp_zv;
|
||||
}
|
||||
|
||||
sxe = php_sxe_fetch_object(object);
|
||||
|
@ -2022,8 +2022,8 @@ SPL_METHOD(RegexIterator, accept)
|
||||
|
||||
case REGIT_MODE_REPLACE: {
|
||||
zval *replacement = zend_read_property(intern->std.ce, ZEND_THIS, "replacement", sizeof("replacement")-1, 1, &rv);
|
||||
zend_string *replacement_str = zval_get_string(replacement);
|
||||
if (EG(exception)) {
|
||||
zend_string *replacement_str = zval_try_get_string(replacement);
|
||||
if (UNEXPECTED(!replacement_str)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -802,8 +802,8 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s
|
||||
break;
|
||||
|
||||
default: {
|
||||
zend_string *str = zval_get_string(&retval);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(&retval);
|
||||
if (UNEXPECTED(!str)) {
|
||||
ret = FAILURE;
|
||||
break;
|
||||
}
|
||||
@ -1487,8 +1487,8 @@ static int php_sqlite3_bind_params(php_sqlite3_stmt *stmt_obj) /* {{{ */
|
||||
}
|
||||
|
||||
case SQLITE3_TEXT: {
|
||||
zend_string *str = zval_get_string(parameter);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(parameter);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return FAILURE;
|
||||
}
|
||||
return_code = sqlite3_bind_text(stmt_obj->stmt, param->param_number, ZSTR_VAL(str), ZSTR_LEN(str), SQLITE_TRANSIENT);
|
||||
|
@ -240,8 +240,8 @@ PHP_FUNCTION(assert_options)
|
||||
case ASSERT_ACTIVE:
|
||||
oldint = ASSERTG(active);
|
||||
if (ac == 2) {
|
||||
zend_string *value_str = zval_get_string(value);
|
||||
if (EG(exception)) {
|
||||
zend_string *value_str = zval_try_get_string(value);
|
||||
if (UNEXPECTED(!value_str)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -256,8 +256,8 @@ PHP_FUNCTION(assert_options)
|
||||
case ASSERT_BAIL:
|
||||
oldint = ASSERTG(bail);
|
||||
if (ac == 2) {
|
||||
zend_string *value_str = zval_get_string(value);
|
||||
if (EG(exception)) {
|
||||
zend_string *value_str = zval_try_get_string(value);
|
||||
if (UNEXPECTED(!value_str)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -272,8 +272,8 @@ PHP_FUNCTION(assert_options)
|
||||
case ASSERT_WARNING:
|
||||
oldint = ASSERTG(warning);
|
||||
if (ac == 2) {
|
||||
zend_string *value_str = zval_get_string(value);
|
||||
if (EG(exception)) {
|
||||
zend_string *value_str = zval_try_get_string(value);
|
||||
if (UNEXPECTED(!value_str)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -302,8 +302,8 @@ PHP_FUNCTION(assert_options)
|
||||
case ASSERT_EXCEPTION:
|
||||
oldint = ASSERTG(exception);
|
||||
if (ac == 2) {
|
||||
zend_string *val = zval_get_string(value);
|
||||
if (EG(exception)) {
|
||||
zend_string *val = zval_try_get_string(value);
|
||||
if (UNEXPECTED(!val)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4689,8 +4689,8 @@ PHP_FUNCTION(setlocale)
|
||||
plocale = &args[i];
|
||||
}
|
||||
|
||||
loc = zval_get_string(plocale);
|
||||
if (EG(exception)) {
|
||||
loc = zval_try_get_string(plocale);
|
||||
if (UNEXPECTED(!loc)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -759,14 +759,17 @@ PHP_FUNCTION(xsl_xsltprocessor_set_parameter)
|
||||
intern = Z_XSL_P(id);
|
||||
ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(array_value), string_key, entry) {
|
||||
zval tmp;
|
||||
zend_string *str;
|
||||
|
||||
if (string_key == NULL) {
|
||||
php_error_docref(NULL, E_WARNING, "Invalid parameter array");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
ZVAL_STR(&tmp, zval_get_string(entry));
|
||||
if (EG(exception)) {
|
||||
str = zval_try_get_string(entry);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return;
|
||||
}
|
||||
ZVAL_STR(&tmp, str);
|
||||
zend_hash_update(intern->parameter, string_key, &tmp);
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
RETURN_TRUE;
|
||||
@ -849,8 +852,8 @@ PHP_FUNCTION(xsl_xsltprocessor_register_php_functions)
|
||||
intern = Z_XSL_P(id);
|
||||
|
||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(array_value), entry) {
|
||||
zend_string *str = zval_get_string(entry);
|
||||
if (EG(exception)) {
|
||||
zend_string *str = zval_try_get_string(entry);
|
||||
if (UNEXPECTED(!str)) {
|
||||
return;
|
||||
}
|
||||
ZVAL_LONG(&new_string, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user