}
/* }}} */
-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;
}
/* }}} */
break;
}
default:
- zend_print_variable(expr);
+ zend_print_variable(expr TSRMLS_CC);
break;
}
}
break;
}
default:
- zend_print_zval_ex(write_func, expr, indent);
+ zend_print_zval_ex(write_func, expr, indent TSRMLS_CC);
break;
}
}
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);
}
-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);
}
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);
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();
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();
}
SAVE_OPLINE();
z = opline->op1.zv;
- zend_print_variable(z);
+ zend_print_variable(z TSRMLS_CC);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
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);
}
}
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();
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);
}
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();
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);
}
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);
}
}
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();
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_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);
}
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);
}