Commit a0de1ace411 for php.net

commit a0de1ace41196ca6a6da6c5c0bb51ca83caa50c4
Author: Gina Peter Banyard <girgias@php.net>
Date:   Fri Feb 6 13:17:38 2026 +0000

    ext/session: refactor session_write_close()

    By making the underlying function return a bool and not do duplicate checks

diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index 27414f52b37..60615cb67ba 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -97,6 +97,9 @@ PHP 8.6 INTERNALS UPGRADE NOTES
   . Dropped session_options parameter from all methods in mysqlnd_auth.
     The same information is present in conn->options and should be used instead.

+- ext/session:
+  . php_session_flush() now returns a bool rather than a zend_result.
+
 - ext/standard:
   . _php_error_log() now has a formal return type of zend_result.
   . _php_error_log() now accepts zend_string* values instead of char*.
diff --git a/ext/session/php_session.h b/ext/session/php_session.h
index ace8c6998cd..bf6fcbdcf49 100644
--- a/ext/session/php_session.h
+++ b/ext/session/php_session.h
@@ -263,7 +263,7 @@ PHPAPI zend_result php_session_register_serializer(const char *name,
 	        zend_result (*decode)(PS_SERIALIZER_DECODE_ARGS));

 PHPAPI zend_result php_session_start(void);
-PHPAPI zend_result php_session_flush(bool write);
+PHPAPI bool php_session_flush(bool write);
 PHPAPI php_session_status php_get_session_status(void);

 PHPAPI const ps_module *_php_find_ps_module(const char *name);
diff --git a/ext/session/session.c b/ext/session/session.c
index 260e5533771..92ed91fbf86 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1720,14 +1720,14 @@ PHPAPI zend_result php_session_start(void)
 	return SUCCESS;
 }

-PHPAPI zend_result php_session_flush(bool write)
+PHPAPI bool php_session_flush(bool write)
 {
 	if (PS(session_status) == php_session_active) {
 		php_session_save_current_state(write);
 		PS(session_status) = php_session_none;
-		return SUCCESS;
+		return true;
 	}
-	return FAILURE;
+	return false;
 }

 PHPAPI php_session_status php_get_session_status(void)
@@ -2724,11 +2724,7 @@ PHP_FUNCTION(session_write_close)
 		RETURN_THROWS();
 	}

-	if (PS(session_status) != php_session_active) {
-		RETURN_FALSE;
-	}
-	php_session_flush(true);
-	RETURN_TRUE;
+	RETURN_BOOL(php_session_flush(true));
 }

 /* Abort session and end session. Session data will not be written */