mirror of
https://github.com/php/php-src.git
synced 2026-04-04 22:52:40 +02:00
Fixed inproper IS_REF handling in ext/standard/tests/strings/bug27295.phpt
This commit is contained in:
@@ -742,15 +742,11 @@ literal:
|
||||
if (numVars && objIndex >= argCount) {
|
||||
break;
|
||||
} else if (numVars) {
|
||||
zend_uint refcount;
|
||||
|
||||
current = &args[objIndex++];
|
||||
refcount = Z_REFCOUNT_P(current);
|
||||
zval_dtor(current);
|
||||
ZVAL_LONG(current, (long)(string - baseString) );
|
||||
zval_dtor(Z_REFVAL_P(current));
|
||||
ZVAL_LONG(Z_REFVAL_P(current), (long)(string - baseString) );
|
||||
// Z_SET_REFCOUNT_P(current, refcount);
|
||||
//??? Z_SET_ISREF_P(current);
|
||||
ZVAL_NEW_REF(current, current);
|
||||
} else {
|
||||
add_index_long(return_value, objIndex++, string - baseString);
|
||||
}
|
||||
@@ -867,15 +863,11 @@ literal:
|
||||
if (numVars && objIndex >= argCount) {
|
||||
break;
|
||||
} else if (numVars) {
|
||||
zend_uint refcount;
|
||||
|
||||
current = &args[objIndex++];
|
||||
refcount = Z_REFCOUNT_P(current);
|
||||
zval_dtor( current );
|
||||
ZVAL_STRINGL( current, string, end-string);
|
||||
Z_SET_REFCOUNT_P(current, refcount);
|
||||
zval_dtor(Z_REFVAL_P(current));
|
||||
ZVAL_STRINGL(Z_REFVAL_P(current), string, end-string);
|
||||
// Z_SET_REFCOUNT_P(current, refcount);
|
||||
//??? Z_SET_ISREF_PP(current);
|
||||
ZVAL_NEW_REF(current, current);
|
||||
} else {
|
||||
add_index_stringl(return_value, objIndex++, string, end-string, 1);
|
||||
}
|
||||
@@ -915,8 +907,8 @@ literal:
|
||||
break;
|
||||
} else if (numVars) {
|
||||
current = &args[objIndex++];
|
||||
zval_dtor( current );
|
||||
ZVAL_STRINGL( current, string, end-string);
|
||||
zval_dtor(Z_REFVAL_P(current));
|
||||
ZVAL_STRINGL(Z_REFVAL_P(current), string, end-string);
|
||||
} else {
|
||||
add_index_stringl(return_value, objIndex++, string, end-string, 1);
|
||||
}
|
||||
@@ -1069,8 +1061,8 @@ addToInt:
|
||||
} else if (numVars) {
|
||||
/* change passed value type to string */
|
||||
current = &args[objIndex++];
|
||||
zval_dtor(current);
|
||||
ZVAL_STRING(current, buf);
|
||||
zval_dtor(Z_REFVAL_P(current));
|
||||
ZVAL_STRING(Z_REFVAL_P(current), buf);
|
||||
} else {
|
||||
add_index_string(return_value, objIndex++, buf, 1);
|
||||
}
|
||||
@@ -1079,8 +1071,8 @@ addToInt:
|
||||
break;
|
||||
} else if (numVars) {
|
||||
current = &args[objIndex++];
|
||||
zval_dtor(current);
|
||||
ZVAL_LONG(current, value);
|
||||
zval_dtor(Z_REFVAL_P(current));
|
||||
ZVAL_LONG(Z_REFVAL_P(current), value);
|
||||
} else {
|
||||
add_index_long(return_value, objIndex++, value);
|
||||
}
|
||||
@@ -1184,8 +1176,8 @@ addToFloat:
|
||||
break;
|
||||
} else if (numVars) {
|
||||
current = &args[objIndex++];
|
||||
zval_dtor(current);
|
||||
ZVAL_DOUBLE(current, dvalue);
|
||||
zval_dtor(Z_REFVAL_P(current));
|
||||
ZVAL_DOUBLE(Z_REFVAL_P(current), dvalue);
|
||||
} else {
|
||||
add_index_double(return_value, objIndex++, dvalue );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user