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))