diff options
| author | Zeev Suraski <zeev@php.net> | 1999-05-13 15:54:49 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 1999-05-13 15:54:49 +0000 |
| commit | 5eaed486e1c61ec33c83bb8ce266f4d9fd59d289 (patch) | |
| tree | 656892887e87e40e55100b31b6a5100eaeb0b40f /ext | |
| parent | 0b873a78999bc6a78d5652eae541a08f75efe3d6 (diff) | |
| download | php-git-5eaed486e1c61ec33c83bb8ce266f4d9fd59d289.tar.gz | |
* HTTP-auth bugfix
* Patch the regex thread safe code to compile in thread safe mode
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/ereg/ereg.c | 6 | ||||
| -rw-r--r-- | ext/ereg/php_ereg.h | 22 | ||||
| -rw-r--r-- | ext/standard/reg.c | 6 | ||||
| -rw-r--r-- | ext/standard/reg.h | 22 |
4 files changed, 30 insertions, 26 deletions
diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c index b492865e6b..e7550db08d 100644 --- a/ext/ereg/ereg.c +++ b/ext/ereg/ereg.c @@ -75,10 +75,10 @@ typedef struct { static int _php_regcomp(regex_t *preg, const char *pattern, int cflags) { - REGSLS_FETCH int r = 0; int patlen = strlen(pattern); reg_cache *rc = NULL; + REGLS_FETCH(); if(_php3_hash_find(®(ht_rc), (char *) pattern, patlen, (void **) &rc) == FAILURE || rc->cflags != cflags) { @@ -114,7 +114,7 @@ static void php_reg_init_globals(php_reg_globals *reg_globals) static int php_minit_regex(INIT_FUNC_ARGS) { #ifdef ZTS - reg_globals_id = tsrm_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL); + reg_globals_id = ts_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL); #else php_reg_init_globals(®_globals); #endif @@ -124,6 +124,8 @@ static int php_minit_regex(INIT_FUNC_ARGS) static int php_mshutdown_regex(SHUTDOWN_FUNC_ARGS) { + REGLS_FETCH(); + _php3_hash_destroy(®(ht_rc)); return SUCCESS; } diff --git a/ext/ereg/php_ereg.h b/ext/ereg/php_ereg.h index 011484bc4f..4b7f37466d 100644 --- a/ext/ereg/php_ereg.h +++ b/ext/ereg/php_ereg.h @@ -43,7 +43,7 @@ PHP_FUNCTION(eregi); PHP_FUNCTION(eregireplace); PHP_FUNCTION(eregreplace); PHP_FUNCTION(split); -PHP_FUNCTION(sql_regcase); +PHPAPI PHP_FUNCTION(sql_regcase); typedef struct { HashTable ht_rc; @@ -51,19 +51,19 @@ typedef struct { #ifdef ZTS -#define REGSLS_D php_reg_globals *reg_globals -#define REGSLS_DC , REGSLS_D -#define REGSLS_C reg_globals -#define REGSLS_CC , REGSLS_C +#define REGLS_D php_reg_globals *reg_globals +#define REGLS_DC , REGLS_D +#define REGLS_C reg_globals +#define REGLS_CC , REGLS_C #define REG(v) (reg_globals->v) -#define REGSLS_FETCH php_reg_globals *reg_globals = ts_resource(reg_globals_id); +#define REGLS_FETCH() php_reg_globals *reg_globals = ts_resource(reg_globals_id) #else -#define REGSLS_D -#define REGSLS_DC -#define REGSLS_C -#define REGSLS_CC +#define REGLS_D +#define REGLS_DC +#define REGLS_C +#define REGLS_CC #define REG(v) (reg_globals.v) -#define REGSLS_FETCH +#define REGLS_FETCH() #endif #define phpext_regex_ptr regexp_module_ptr diff --git a/ext/standard/reg.c b/ext/standard/reg.c index b492865e6b..e7550db08d 100644 --- a/ext/standard/reg.c +++ b/ext/standard/reg.c @@ -75,10 +75,10 @@ typedef struct { static int _php_regcomp(regex_t *preg, const char *pattern, int cflags) { - REGSLS_FETCH int r = 0; int patlen = strlen(pattern); reg_cache *rc = NULL; + REGLS_FETCH(); if(_php3_hash_find(®(ht_rc), (char *) pattern, patlen, (void **) &rc) == FAILURE || rc->cflags != cflags) { @@ -114,7 +114,7 @@ static void php_reg_init_globals(php_reg_globals *reg_globals) static int php_minit_regex(INIT_FUNC_ARGS) { #ifdef ZTS - reg_globals_id = tsrm_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL); + reg_globals_id = ts_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL); #else php_reg_init_globals(®_globals); #endif @@ -124,6 +124,8 @@ static int php_minit_regex(INIT_FUNC_ARGS) static int php_mshutdown_regex(SHUTDOWN_FUNC_ARGS) { + REGLS_FETCH(); + _php3_hash_destroy(®(ht_rc)); return SUCCESS; } diff --git a/ext/standard/reg.h b/ext/standard/reg.h index 011484bc4f..4b7f37466d 100644 --- a/ext/standard/reg.h +++ b/ext/standard/reg.h @@ -43,7 +43,7 @@ PHP_FUNCTION(eregi); PHP_FUNCTION(eregireplace); PHP_FUNCTION(eregreplace); PHP_FUNCTION(split); -PHP_FUNCTION(sql_regcase); +PHPAPI PHP_FUNCTION(sql_regcase); typedef struct { HashTable ht_rc; @@ -51,19 +51,19 @@ typedef struct { #ifdef ZTS -#define REGSLS_D php_reg_globals *reg_globals -#define REGSLS_DC , REGSLS_D -#define REGSLS_C reg_globals -#define REGSLS_CC , REGSLS_C +#define REGLS_D php_reg_globals *reg_globals +#define REGLS_DC , REGLS_D +#define REGLS_C reg_globals +#define REGLS_CC , REGLS_C #define REG(v) (reg_globals->v) -#define REGSLS_FETCH php_reg_globals *reg_globals = ts_resource(reg_globals_id); +#define REGLS_FETCH() php_reg_globals *reg_globals = ts_resource(reg_globals_id) #else -#define REGSLS_D -#define REGSLS_DC -#define REGSLS_C -#define REGSLS_CC +#define REGLS_D +#define REGLS_DC +#define REGLS_C +#define REGLS_CC #define REG(v) (reg_globals.v) -#define REGSLS_FETCH +#define REGLS_FETCH() #endif #define phpext_regex_ptr regexp_module_ptr |
