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;
}
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));
}
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) {
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;
}
}
/* }}} */
-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)) {
} else if (Z_OBJ_HT_P(op)->get) {
zval *z = Z_OBJ_HT_P(op)->get(op, &tmp);
if (Z_TYPE_P(z) != IS_OBJECT) {
- zend_string *str = zval_get_string(z);
+ zend_string *str = try ? zval_try_get_string(z) : zval_get_string(z);
zval_ptr_dtor(z);
return str;
}
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);
}
/* }}} */
+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);
}
/* }}} */
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();
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();
}
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();
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();
}
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();
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();
}
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();
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();
}
int retval = 0;
if (UNEXPECTED(Z_TYPE_P(member) != IS_STRING)) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return 0;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
obj = Z_PHPINTERVAL_P(object);
double fvalue = -1;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return &EG(uninitialized_zval);
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
obj = Z_PHPINTERVAL_P(object);
zval tmp_member;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return value;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
obj = Z_PHPINTERVAL_P(object);
zval tmp_member, *ret;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return NULL;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
if(zend_binary_strcmp("y", sizeof("y") - 1, Z_STRVAL_P(member), Z_STRLEN_P(member)) == 0 ||
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
nsnode = xmlDocGetRootElement(nodep->doc);
}
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
return FAILURE;
}
- str = zval_get_string(newval);
- if (EG(exception)) {
+ str = zval_try_get_string(newval);
+ if (UNEXPECTED(!str)) {
return FAILURE;
}
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);
zval tmp_member; \
if( Z_TYPE_P( member ) != IS_STRING ) \
{ \
- ZVAL_STR(&tmp_member, \
- zval_get_string_func(member)); \
+ zend_string *_str = \
+ zval_try_get_string_func(member); \
+ if (UNEXPECTED(!_str)) { return_fail; } \
+ ZVAL_STR(&tmp_member, _str); \
member = &tmp_member; \
cache_slot = NULL; \
- if (EG(exception)) { return_fail; } \
}
#define TRANSLITERATOR_PROPERTY_HANDLER_EPILOG \
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;
}
_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);
}
obj = Z_MYSQLI_P(object);
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return &EG(uninitialized_zval);
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
if (obj->prop_handler != NULL) {
mysqli_prop_handler *hnd = NULL;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return value;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
obj = Z_MYSQLI_P(object);
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);
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;
}
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,
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)) {
/* 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) {
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) {
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)) {
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)) {
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) {
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) {
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) {
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;
}
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;
}
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;
}
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;
}
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);
}
#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);
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;
}
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) {
zend_string_release(name);
}
- name = zval_get_string(method);
- if (EG(exception)) {
+ name = zval_try_get_string(method);
+ if (UNEXPECTED(!name)) {
return;
}
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);
}
}
} 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);
}
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 = Z_SXEOBJ_P(object);
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 = Z_SXEOBJ_P(object);
obj = Z_SNMP_P(object);
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return &EG(uninitialized_zval);
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
hnd = zend_hash_find_ptr(&php_snmp_properties, Z_STR_P(member));
php_snmp_prop_handler *hnd;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return value;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
obj = Z_SNMP_P(object);
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;
}
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;
}
}
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);
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;
}
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;
}
case ASSERT_QUIET_EVAL:
oldint = ASSERTG(quiet_eval);
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;
}
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;
}
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;
}
case IS_LONG:
case IS_DOUBLE:
case IS_OBJECT:
- buffer = zval_get_string(option_buffer);
- if (EG(exception)) {
+ buffer = zval_try_get_string(option_buffer);
+ if (UNEXPECTED(!buffer)) {
return NULL;
}
break;
plocale = &args[i];
}
- loc = zval_get_string(plocale);
- if (EG(exception)) {
+ loc = zval_try_get_string(plocale);
+ if (UNEXPECTED(!loc)) {
return;
}
xmlreader_prop_handler *hnd = NULL;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return NULL;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
obj = Z_XMLREADER_P(object);
xmlreader_prop_handler *hnd = NULL;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return &EG(uninitialized_zval);
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
obj = Z_XMLREADER_P(object);
xmlreader_prop_handler *hnd = NULL;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return value;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
}
obj = Z_XMLREADER_P(object);
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;
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);
zip_prop_handler *hnd = NULL;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return NULL;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
obj = Z_ZIP_P(object);
zip_prop_handler *hnd = NULL;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return &EG(uninitialized_zval);
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
obj = Z_ZIP_P(object);
int retval = 0;
if (Z_TYPE_P(member) != IS_STRING) {
- ZVAL_STR(&tmp_member, zval_get_string_func(member));
- member = &tmp_member;
- cache_slot = NULL;
- if (EG(exception)) {
+ zend_string *str = zval_try_get_string_func(member);
+ if (UNEXPECTED(!str)) {
return 0;
}
+ ZVAL_STR(&tmp_member, str);
+ member = &tmp_member;
+ cache_slot = NULL;
}
obj = Z_ZIP_P(object);