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:
@@ -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
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user