diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2019-03-14 03:01:01 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2019-03-14 03:01:01 +0300 |
| commit | 9499484ed2f0377678b2b4d88573327ee0e4ce6d (patch) | |
| tree | 2253189b70e711565902d2c372fe5d93ce111358 /Zend/zend_alloc.c | |
| parent | a1b7bc0c8148eaf728fccdffe147e3bc0c03f18e (diff) | |
| download | php-git-9499484ed2f0377678b2b4d88573327ee0e4ce6d.tar.gz | |
Implemented a faster way to access predefined TSRM resources - CG(), EG(), etc.
Diffstat (limited to 'Zend/zend_alloc.c')
| -rw-r--r-- | Zend/zend_alloc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 27879dae03..dabf48150c 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -2371,7 +2371,8 @@ typedef struct _zend_alloc_globals { #ifdef ZTS static int alloc_globals_id; -# define AG(v) ZEND_TSRMG(alloc_globals_id, zend_alloc_globals *, v) +static size_t alloc_globals_offset; +# define AG(v) ZEND_TSRMG_FAST(alloc_globals_offset, zend_alloc_globals *, v) #else # define AG(v) (alloc_globals.v) static zend_alloc_globals alloc_globals; @@ -2736,7 +2737,7 @@ static void alloc_globals_dtor(zend_alloc_globals *alloc_globals) ZEND_API void start_memory_manager(void) { #ifdef ZTS - ts_allocate_id(&alloc_globals_id, sizeof(zend_alloc_globals), (ts_allocate_ctor) alloc_globals_ctor, (ts_allocate_dtor) alloc_globals_dtor); + ts_allocate_fast_id(&alloc_globals_id, &alloc_globals_offset, sizeof(zend_alloc_globals), (ts_allocate_ctor) alloc_globals_ctor, (ts_allocate_dtor) alloc_globals_dtor); #else alloc_globals_ctor(&alloc_globals); #endif @@ -2958,3 +2959,10 @@ ZEND_API void * __zend_realloc(void *p, size_t len) } zend_out_of_memory(); } + +#ifdef ZTS +size_t zend_mm_globals_size(void) +{ + return sizeof(zend_alloc_globals); +} +#endif |
