Commit ec84d9663e5 for php.net

commit ec84d9663e5087c98ce6cfbc86eb15637627e6fe
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Thu Jun 18 23:50:04 2026 +0200

    Use ZEND_CONTAINER_OF() in poll API

diff --git a/ext/standard/io_poll.c b/ext/standard/io_poll.c
index 4bb7f6a8068..c36306a0b49 100644
--- a/ext/standard/io_poll.c
+++ b/ext/standard/io_poll.c
@@ -68,11 +68,9 @@ typedef struct php_stream_poll_handle_data {
 } php_stream_poll_handle_data;

 /* Accessor macros */
-#define PHP_POLL_CONTEXT_OBJ_FROM_ZOBJ(_obj) \
-	((php_io_poll_context_object *) ((char *) (_obj) - offsetof(php_io_poll_context_object, std)))
+#define PHP_POLL_CONTEXT_OBJ_FROM_ZOBJ(_obj) ZEND_CONTAINER_OF(_obj, php_io_poll_context_object, std)

-#define PHP_POLL_WATCHER_OBJ_FROM_ZOBJ(_obj) \
-	((php_io_poll_watcher_object *) ((char *) (_obj) - offsetof(php_io_poll_watcher_object, std)))
+#define PHP_POLL_WATCHER_OBJ_FROM_ZOBJ(_obj) ZEND_CONTAINER_OF(_obj, php_io_poll_watcher_object, std)

 #define PHP_POLL_WATCHER_OBJ_FROM_ZV(_zv) PHP_POLL_WATCHER_OBJ_FROM_ZOBJ(Z_OBJ_P(_zv))
 #define PHP_POLL_CONTEXT_OBJ_FROM_ZV(_zv) PHP_POLL_CONTEXT_OBJ_FROM_ZOBJ(Z_OBJ_P(_zv))
diff --git a/main/php_poll.h b/main/php_poll.h
index 254f885a6d3..c7305271294 100644
--- a/main/php_poll.h
+++ b/main/php_poll.h
@@ -158,8 +158,7 @@ struct php_poll_handle_object {
 	zend_object std;
 };

-#define PHP_POLL_HANDLE_OBJ_FROM_ZOBJ(obj) \
-	((php_poll_handle_object *) ((char *) (obj) - offsetof(php_poll_handle_object, std)))
+#define PHP_POLL_HANDLE_OBJ_FROM_ZOBJ(obj) ZEND_CONTAINER_OF(obj, php_poll_handle_object, std)

 #define PHP_POLL_HANDLE_OBJ_FROM_ZV(zv) PHP_POLL_HANDLE_OBJ_FROM_ZOBJ(Z_OBJ_P(zv))