Commit 17f94f0a4cd for php

commit 17f94f0a4cdb3bb507ef535f86253a771d703d2c
Author: Jorg Sowa <jorg.sowa@gmail.com>
Date:   Mon Oct 19 12:12:37 2026 +0200

    Fix xxh64 seed deprecation emitted when no seed is given

    Closes GH-24412

diff --git a/ext/hash/hash_xxhash.c b/ext/hash/hash_xxhash.c
index b7253b0c99c..a63149f2fc2 100644
--- a/ext/hash/hash_xxhash.c
+++ b/ext/hash/hash_xxhash.c
@@ -115,11 +115,13 @@ PHP_HASH_API void PHP_XXH64Init(PHP_XXH64_CTX *ctx, HashTable *args)
 		zval *seed = zend_hash_str_find_deref(args, "seed", sizeof("seed") - 1);
 		/* This might be a bit too restrictive, but thinking that a seed might be set
 			once and for all, it should be done a clean way. */
-		if (seed && IS_LONG == Z_TYPE_P(seed)) {
-			XXH64_reset(&ctx->s, (XXH64_hash_t)Z_LVAL_P(seed));
-			return;
-		} else {
-			php_error_docref(NULL, E_DEPRECATED, "Passing a seed of a type other than int is deprecated because it is the same as setting the seed to 0");
+		if (seed) {
+			if (IS_LONG == Z_TYPE_P(seed)) {
+				XXH64_reset(&ctx->s, (XXH64_hash_t)Z_LVAL_P(seed));
+				return;
+			} else {
+				php_error_docref(NULL, E_DEPRECATED, "Passing a seed of a type other than int is deprecated because it is the same as setting the seed to 0");
+			}
 		}
 	}

diff --git a/ext/hash/tests/xxhash_options_without_seed.phpt b/ext/hash/tests/xxhash_options_without_seed.phpt
new file mode 100644
index 00000000000..87660f1f57f
--- /dev/null
+++ b/ext/hash/tests/xxhash_options_without_seed.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Hash: xxHash options without a seed do not emit a deprecation
+--FILE--
+<?php
+
+foreach (["xxh32", "xxh64", "xxh3", "xxh128"] as $a) {
+	var_dump(hash($a, "x", options: []) === hash($a, "x"));
+}
+
+?>
+--EXPECT--
+bool(true)
+bool(true)
+bool(true)
+bool(true)