summaryrefslogtreecommitdiff
path: root/ext/standard/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/file.c')
-rw-r--r--ext/standard/file.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 9d810ca4dc..4d102fd204 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -108,10 +108,6 @@ int file_globals_id;
php_file_globals file_globals;
#endif
-static void _file_fopen_dtor(FILE *pipe);
-static void _file_popen_dtor(FILE *pipe);
-static void _file_socket_dtor(int *sock);
-
/* sharing globals is *evil* */
static int le_fopen, le_popen, le_socket;
@@ -119,15 +115,17 @@ static int le_fopen, le_popen, le_socket;
/* }}} */
/* {{{ Module-Stuff */
-static void _file_popen_dtor(FILE *pipe)
+static void _file_popen_dtor(zend_rsrc_list_entry *rsrc)
{
+ FILE *pipe = (FILE *)rsrc->ptr;
FIL_FETCH();
FIL(pclose_ret) = pclose(pipe);
}
-static void _file_socket_dtor(int *sock)
+static void _file_socket_dtor(zend_rsrc_list_entry *rsrc)
{
+ int *sock = (int *)rsrc->ptr;
SOCK_FCLOSE(*sock);
#if HAVE_SHUTDOWN
shutdown(*sock, 0);
@@ -136,8 +134,9 @@ static void _file_socket_dtor(int *sock)
}
-static void _file_fopen_dtor(FILE *fp)
+static void _file_fopen_dtor(zend_rsrc_list_entry *rsrc)
{
+ FILE *fp = (FILE *)rsrc->ptr;
fclose(fp);
}
@@ -169,9 +168,9 @@ static void php_file_init_globals(php_file_globals *file_globals)
PHP_MINIT_FUNCTION(file)
{
- le_fopen = register_list_destructors(_file_fopen_dtor, NULL);
- le_popen = register_list_destructors(_file_popen_dtor, NULL);
- le_socket = register_list_destructors(_file_socket_dtor, NULL);
+ le_fopen = register_list_destructors(_file_fopen_dtor, NULL, "file");
+ le_popen = register_list_destructors(_file_popen_dtor, NULL, "pipe");
+ le_socket = register_list_destructors(_file_socket_dtor, NULL, "socket");
#ifdef ZTS
file_globals_id = ts_allocate_id(sizeof(php_file_globals), (ts_allocate_ctor) php_file_init_globals, NULL);