1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 23:18:13 +02:00

Fixed converting IS_REFERENCE to string

This commit is contained in:
Dmitry Stogov
2014-02-25 13:21:03 +04:00
parent 4e63cf9b16
commit 820184dd00
2 changed files with 10 additions and 12 deletions
+8
View File
@@ -225,6 +225,14 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
*use_copy = 0;
return;
}
if (Z_TYPE_P(expr) == IS_REFERENCE) {
expr = Z_REFVAL_P(expr);
if (Z_TYPE_P(expr) == IS_STRING) {
ZVAL_STR(expr_copy, Z_STR_P(expr));
*use_copy = 1;
return;
}
}
switch (Z_TYPE_P(expr)) {
case IS_NULL:
Z_STR_P(expr_copy) = STR_EMPTY_ALLOC();
+2 -12
View File
@@ -1425,20 +1425,10 @@ ZEND_API int string_compare_function_ex(zval *result, zval *op1, zval *op2, zend
int use_copy1 = 0, use_copy2 = 0;
if (Z_TYPE_P(op1) != IS_STRING) {
if (Z_TYPE_P(op1) == IS_REFERENCE) {
op1 = Z_REFVAL_P(op1);
}
if (Z_TYPE_P(op1) != IS_STRING) {
zend_make_printable_zval(op1, &op1_copy, &use_copy1);
}
zend_make_printable_zval(op1, &op1_copy, &use_copy1);
}
if (Z_TYPE_P(op2) != IS_STRING) {
if (Z_TYPE_P(op2) == IS_REFERENCE) {
op2 = Z_REFVAL_P(op2);
}
if (Z_TYPE_P(op2) != IS_STRING) {
zend_make_printable_zval(op2, &op2_copy, &use_copy2);
}
zend_make_printable_zval(op2, &op2_copy, &use_copy2);
}
if (use_copy1) {