summaryrefslogtreecommitdiff
path: root/Zend/zend_alloc.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2019-03-14 03:02:10 +0300
committerDmitry Stogov <dmitry@zend.com>2019-03-14 03:02:10 +0300
commit2dd2dcaf9c8bcdda9c687660da887c5fddeb7448 (patch)
tree0815453b216df50724b504f01825f3c4ca368f3e /Zend/zend_alloc.c
parentd349ea3ceb30b99657c0843f6ffc4ed7af619dd5 (diff)
parent9499484ed2f0377678b2b4d88573327ee0e4ce6d (diff)
downloadphp-git-2dd2dcaf9c8bcdda9c687660da887c5fddeb7448.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: 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.c12
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