Commit b843e03c83d for php.net

commit b843e03c83d6be2cad555c6b701eb2d250070899
Author: Nurzhan Bazhirov <nurzhanbazhirov@gmail.com>
Date:   Wed Feb 4 12:34:54 2026 +0500

    Zend: Remove unused parameter from zend_dval_to_lval_cap()

    The `zend_string *s` parameter became unused after commit f754ffa8b20
    (GH-20746) removed the `zend_oob_string_to_long_error()` calls.

    This fixes an unused-parameter compiler warning and updates a stale
    comment in zend_operators.c that incorrectly stated this function
    can emit warnings.

    Closes GH-21112

diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index 840edc786ac..27414f52b37 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -68,6 +68,8 @@ PHP 8.6 INTERNALS UPGRADE NOTES
     more correctly represents the generic nature of the returned pointer and
     allows to remove explicit casts, but possibly breaks pointer arithmetic
     performed on the result.
+  . The zend_dval_to_lval_cap() function no longer takes a second
+    zend_string* parameter.

 ========================
 2. Build system changes
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 2550fcbeb1c..571494088e3 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -427,18 +427,14 @@ static zend_never_inline zend_long ZEND_FASTCALL zendi_try_get_long(const zval *
 					 * We use use saturating conversion to emulate strtol()'s
 					 * behaviour.
 					 */
-					if (op_str == NULL) {
-						/* zend_dval_to_lval_cap() can emit a warning so always do the copy here */
-						op_str = zend_string_copy(Z_STR_P(op));
-					}
-					lval = zend_dval_to_lval_cap(dval, op_str);
+					lval = zend_dval_to_lval_cap(dval);
 					if (!zend_is_long_compatible(dval, lval)) {
-						zend_incompatible_string_to_long_error(op_str);
+						zend_incompatible_string_to_long_error(op_str ? op_str : Z_STR_P(op));
 						if (UNEXPECTED(EG(exception))) {
 							*failed = true;
 						}
 					}
-					zend_string_release(op_str);
+					zend_tmp_string_release(op_str);
 					return lval;
 				}
 			}
@@ -994,7 +990,7 @@ ZEND_API zend_long ZEND_FASTCALL zval_get_long_func(const zval *op, bool is_stri
 					 * behaviour.
 					 */
 					 /* Most usages are expected to not be (int) casts */
-					lval = zend_dval_to_lval_cap(dval, Z_STR_P(op));
+					lval = zend_dval_to_lval_cap(dval);
 					if (UNEXPECTED(is_strict)) {
 						if (!zend_is_long_compatible(dval, lval)) {
 							zend_incompatible_string_to_long_error(Z_STR_P(op));
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h
index 2f226a76cca..e6d648d1208 100644
--- a/Zend/zend_operators.h
+++ b/Zend/zend_operators.h
@@ -146,7 +146,7 @@ static zend_always_inline zend_long zend_dval_to_lval_silent(double d)
 }

 /* Used to convert a string float to integer during an (int) cast */
-static zend_always_inline zend_long zend_dval_to_lval_cap(double d, const zend_string *s)
+static zend_always_inline zend_long zend_dval_to_lval_cap(double d)
 {
 	if (UNEXPECTED(!zend_finite(d))) {
 		return 0;
diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c
index 33a22e47c78..57fa5e71f6b 100644
--- a/ext/dom/php_dom.c
+++ b/ext/dom/php_dom.c
@@ -2267,7 +2267,7 @@ static bool dom_nodemap_or_nodelist_process_offset_as_named(zval *offset, zend_l
 		if (0 == (is_numeric_string_type = is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), lval, &dval, true))) {
 			return true;
 		} else if (is_numeric_string_type == IS_DOUBLE) {
-			*lval = zend_dval_to_lval_cap(dval, Z_STR_P(offset));
+			*lval = zend_dval_to_lval_cap(dval);
 		}
 	} else {
 		*lval = zval_get_long(offset);
diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c
index 8cf45dc7fcb..9dcfb733a59 100644
--- a/ext/tidy/tidy.c
+++ b/ext/tidy/tidy.c
@@ -757,7 +757,7 @@ static bool php_tidy_set_tidy_opt(TidyDoc doc, const char *optname, zval *value,
 			}
 			uint8_t type = is_numeric_string(ZSTR_VAL(str), ZSTR_LEN(str), &lval, &dval, true);
 			if (type == IS_DOUBLE) {
-				lval = zend_dval_to_lval_cap(dval, str);
+				lval = zend_dval_to_lval_cap(dval);
 				type = IS_LONG;
 			}
 			if (type == IS_LONG) {