mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Use zval_get_string in print_zval and propagate TSRMLS
This commit is contained in:
parent
5c8697184f
commit
bda96e3c58
35
Zend/zend.c
35
Zend/zend.c
@ -309,34 +309,23 @@ again:
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API int zend_print_zval(zval *expr, int indent) /* {{{ */
|
||||
ZEND_API int zend_print_zval(zval *expr, int indent TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
return zend_print_zval_ex(zend_write, expr, indent);
|
||||
return zend_print_zval_ex(zend_write, expr, indent TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent) /* {{{ */
|
||||
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
zval expr_copy;
|
||||
int use_copy;
|
||||
int ret;
|
||||
zend_string *str = zval_get_string(expr TSRMLS_CC);
|
||||
int len = str->len;
|
||||
|
||||
zend_make_printable_zval(expr, &expr_copy, &use_copy);
|
||||
if (use_copy) {
|
||||
expr = &expr_copy;
|
||||
if (len != 0) {
|
||||
write_func(str->val, len);
|
||||
}
|
||||
if (Z_STRLEN_P(expr) == 0) { /* optimize away empty strings */
|
||||
if (use_copy) {
|
||||
zval_dtor(expr);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
write_func(Z_STRVAL_P(expr), Z_STRLEN_P(expr));
|
||||
ret = Z_STRLEN_P(expr);
|
||||
if (use_copy) {
|
||||
zval_dtor(expr);
|
||||
}
|
||||
return ret;
|
||||
|
||||
STR_RELEASE(str);
|
||||
return len;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@ -386,7 +375,7 @@ ZEND_API void zend_print_flat_zval_r(zval *expr TSRMLS_DC) /* {{{ */
|
||||
break;
|
||||
}
|
||||
default:
|
||||
zend_print_variable(expr);
|
||||
zend_print_variable(expr TSRMLS_CC);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -447,7 +436,7 @@ ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int
|
||||
break;
|
||||
}
|
||||
default:
|
||||
zend_print_zval_ex(write_func, expr, indent);
|
||||
zend_print_zval_ex(write_func, expr, indent TSRMLS_CC);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -555,8 +555,8 @@ END_EXTERN_C()
|
||||
BEGIN_EXTERN_C()
|
||||
ZEND_API char *get_zend_version(void);
|
||||
ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_copy);
|
||||
ZEND_API int zend_print_zval(zval *expr, int indent);
|
||||
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent);
|
||||
ZEND_API int zend_print_zval(zval *expr, int indent TSRMLS_DC);
|
||||
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent TSRMLS_DC);
|
||||
ZEND_API void zend_print_zval_r(zval *expr, int indent TSRMLS_DC);
|
||||
ZEND_API void zend_print_flat_zval_r(zval *expr TSRMLS_DC);
|
||||
ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent TSRMLS_DC);
|
||||
|
@ -270,16 +270,14 @@ ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
|
||||
}
|
||||
|
||||
|
||||
ZEND_API int zend_print_variable(zval *var)
|
||||
ZEND_API int zend_print_variable(zval *var TSRMLS_DC)
|
||||
{
|
||||
return zend_print_zval(var, 0);
|
||||
return zend_print_zval(var, 0 TSRMLS_CC);
|
||||
}
|
||||
|
||||
|
||||
ZEND_API void _zval_dtor_wrapper(zval *zvalue)
|
||||
{
|
||||
TSRMLS_FETCH();
|
||||
|
||||
zval_dtor(zvalue);
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ static zend_always_inline void _zval_opt_copy_ctor(zval *zvalue ZEND_FILE_LINE_D
|
||||
|
||||
ZEND_API int zval_copy_static_var(zval *p TSRMLS_DC, int num_args, va_list args, zend_hash_key *key);
|
||||
|
||||
ZEND_API int zend_print_variable(zval *var);
|
||||
ZEND_API int zend_print_variable(zval *var TSRMLS_DC);
|
||||
ZEND_API void _zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC);
|
||||
ZEND_API void _zval_internal_dtor_for_ptr(zval *zvalue ZEND_FILE_LINE_DC);
|
||||
ZEND_API void _zval_internal_dtor(zval *zvalue ZEND_FILE_LINE_DC);
|
||||
|
@ -1064,7 +1064,7 @@ ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMP|VAR|CV, ANY)
|
||||
SAVE_OPLINE();
|
||||
z = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R);
|
||||
|
||||
zend_print_variable(z);
|
||||
zend_print_variable(z TSRMLS_CC);
|
||||
|
||||
FREE_OP1();
|
||||
CHECK_EXCEPTION();
|
||||
@ -4636,7 +4636,7 @@ ZEND_VM_HANDLER(79, ZEND_EXIT, CONST|TMP|VAR|UNUSED|CV, ANY)
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
} else {
|
||||
zend_print_variable(ptr);
|
||||
zend_print_variable(ptr TSRMLS_CC);
|
||||
}
|
||||
FREE_OP1();
|
||||
}
|
||||
|
@ -2337,7 +2337,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
SAVE_OPLINE();
|
||||
z = opline->op1.zv;
|
||||
|
||||
zend_print_variable(z);
|
||||
zend_print_variable(z TSRMLS_CC);
|
||||
|
||||
CHECK_EXCEPTION();
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
@ -3135,7 +3135,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
} else {
|
||||
zend_print_variable(ptr);
|
||||
zend_print_variable(ptr TSRMLS_CC);
|
||||
}
|
||||
|
||||
}
|
||||
@ -7298,7 +7298,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
SAVE_OPLINE();
|
||||
z = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
|
||||
|
||||
zend_print_variable(z);
|
||||
zend_print_variable(z TSRMLS_CC);
|
||||
|
||||
zval_dtor(free_op1.var);
|
||||
CHECK_EXCEPTION();
|
||||
@ -8084,7 +8084,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
} else {
|
||||
zend_print_variable(ptr);
|
||||
zend_print_variable(ptr TSRMLS_CC);
|
||||
}
|
||||
zval_dtor(free_op1.var);
|
||||
}
|
||||
@ -12167,7 +12167,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
SAVE_OPLINE();
|
||||
z = _get_zval_ptr_var_deref(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
|
||||
|
||||
zend_print_variable(z);
|
||||
zend_print_variable(z TSRMLS_CC);
|
||||
|
||||
zval_ptr_dtor_nogc(free_op1.var);
|
||||
CHECK_EXCEPTION();
|
||||
@ -13214,7 +13214,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
} else {
|
||||
zend_print_variable(ptr);
|
||||
zend_print_variable(ptr TSRMLS_CC);
|
||||
}
|
||||
zval_ptr_dtor_nogc(free_op1.var);
|
||||
}
|
||||
@ -22983,7 +22983,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
} else {
|
||||
zend_print_variable(ptr);
|
||||
zend_print_variable(ptr TSRMLS_CC);
|
||||
}
|
||||
|
||||
}
|
||||
@ -28696,7 +28696,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
SAVE_OPLINE();
|
||||
z = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
|
||||
|
||||
zend_print_variable(z);
|
||||
zend_print_variable(z TSRMLS_CC);
|
||||
|
||||
CHECK_EXCEPTION();
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
@ -29576,7 +29576,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
} else {
|
||||
zend_print_variable(ptr);
|
||||
zend_print_variable(ptr TSRMLS_CC);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1529,7 +1529,7 @@ ZEND_METHOD(reflection, export)
|
||||
ZVAL_COPY_VALUE(return_value, &retval);
|
||||
} else {
|
||||
/* No need for _r variant, return of __toString should always be a string */
|
||||
zend_print_zval(&retval, 0);
|
||||
zend_print_zval(&retval, 0 TSRMLS_CC);
|
||||
zend_printf("\n");
|
||||
zval_ptr_dtor(&retval);
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ PHPDBG_INFO(literal) /* {{{ */
|
||||
if (Z_TYPE(ops->literals[literal]) != IS_NULL) {
|
||||
phpdbg_write("|-------- C%u -------> [", literal);
|
||||
zend_print_zval(
|
||||
&ops->literals[literal], 0);
|
||||
&ops->literals[literal], 0 TSRMLS_CC);
|
||||
phpdbg_write("]");
|
||||
phpdbg_writeln(EMPTY);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user