summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2000-09-02 18:40:41 +0000
committerAndi Gutmans <andi@php.net>2000-09-02 18:40:41 +0000
commit299d1295b6350cc32e33e56d20e1106fe5c93f1a (patch)
tree2df9566b5e9065b4766267a551bec742cca128a9
parentcf8e389799ff213d6eadfee8839b1aaa5ebe32f8 (diff)
downloadphp-git-299d1295b6350cc32e33e56d20e1106fe5c93f1a.tar.gz
- Remove another TSRM->Zend dependency
-rw-r--r--main/php_virtual_cwd.c17
-rw-r--r--main/php_virtual_cwd.h8
2 files changed, 17 insertions, 8 deletions
diff --git a/main/php_virtual_cwd.c b/main/php_virtual_cwd.c
index fd0c352bb0..0bb8e34b2c 100644
--- a/main/php_virtual_cwd.c
+++ b/main/php_virtual_cwd.c
@@ -48,7 +48,11 @@ typedef int mode_t;
MUTEX_T cwd_mutex;
#endif
-ZEND_DECLARE_MODULE_GLOBALS(cwd);
+#ifdef ZTS
+static ts_rsrc_id cwd_globals_id;
+#else
+static virtual_cwd_globals cwd_globals;
+#endif
cwd_state main_cwd_state; /* True global */
@@ -145,12 +149,12 @@ static int php_is_file_ok(const cwd_state *state)
return (1);
}
-static void cwd_globals_ctor(zend_cwd_globals *cwd_globals)
+static void cwd_globals_ctor(virtual_cwd_globals *cwd_globals)
{
CWD_STATE_COPY(&cwd_globals->cwd, &main_cwd_state);
}
-static void cwd_globals_dtor(zend_cwd_globals *cwd_globals)
+static void cwd_globals_dtor(virtual_cwd_globals *cwd_globals)
{
CWD_STATE_FREE(&cwd_globals->cwd);
}
@@ -167,7 +171,12 @@ CWD_API void virtual_cwd_startup(void)
main_cwd_state.cwd = strdup(cwd);
main_cwd_state.cwd_length = strlen(cwd);
- ZEND_INIT_MODULE_GLOBALS(cwd, cwd_globals_ctor, cwd_globals_dtor);
+#ifdef ZTS
+ cwd_globals_id = ts_allocate_id(sizeof(virtual_cwd_globals), (ts_allocate_ctor) cwd_globals_ctor, (ts_allocate_dtor) cwd_globals_dtor);
+#else
+ cwd_globals_ctor(&cwd_globals);
+#endif
+
#if defined(ZEND_WIN32) && defined(ZTS)
cwd_mutex = tsrm_mutex_alloc();
#endif
diff --git a/main/php_virtual_cwd.h b/main/php_virtual_cwd.h
index 03b100d8c2..6c15ecc427 100644
--- a/main/php_virtual_cwd.h
+++ b/main/php_virtual_cwd.h
@@ -118,17 +118,17 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group);
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path);
-ZEND_BEGIN_MODULE_GLOBALS(cwd)
+typedef struct _virtual_cwd_globals {
cwd_state cwd;
-ZEND_END_MODULE_GLOBALS(cwd)
+} virtual_cwd_globals;
#ifdef ZTS
-# define CWDLS_D zend_cwd_globals *cwd_globals
+# define CWDLS_D virtual_cwd_globals *cwd_globals
# define CWDLS_DC , CWDLS_D
# define CWDLS_C cwd_globals
# define CWDLS_CC , CWDLS_C
# define CWDG(v) (cwd_globals->v)
-# define CWDLS_FETCH() zend_cwd_globals *cwd_globals = ts_resource(cwd_globals_id)
+# define CWDLS_FETCH() virtual_cwd_globals *cwd_globals = ts_resource(cwd_globals_id)
#else
# define CWDLS_D void
# define CWDLS_DC