summaryrefslogtreecommitdiff
path: root/TSRM/TSRM.h
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-10-01 22:04:21 +0200
committerAnatol Belski <ab@php.net>2014-10-01 22:04:21 +0200
commit76081df168829a5cc0409fac47c217d4927ec6f6 (patch)
tree9d17ebf69a2c193ca318619aae24e821d9ef5634 /TSRM/TSRM.h
parentc161b95cdfbd45bd90c0327d29e1c967a4152c28 (diff)
downloadphp-git-76081df168829a5cc0409fac47c217d4927ec6f6.tar.gz
using pointer to the tsrm ls cache instead of a function call
yet another approach
Diffstat (limited to 'TSRM/TSRM.h')
-rw-r--r--TSRM/TSRM.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h
index 89d213348c..4f73455ca0 100644
--- a/TSRM/TSRM.h
+++ b/TSRM/TSRM.h
@@ -170,7 +170,13 @@ TSRM_API inline void *tsrm_get_ls_cache(void);
#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx
#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_get_ls_cache()
#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
-#define TSRMGP(id, type, element) (((type) (*((void ***) tsrm_ls_cache))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
+
+#define TSRMG_STATIC(id, type, element) (((type) (*((void ***) _tsrm_ls_cache))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
+#define TSRMLS_CACHE_EXTERN TSRM_TLS extern void *_tsrm_ls_cache
+#define TSRMLS_CACHE_DEFINE TSRM_TLS void *_tsrm_ls_cache
+#define TSRMLS_CACHE_UPDATE _tsrm_ls_cache = tsrm_get_ls_cache()
+
+/* BC only */
#define TSRMLS_D
#define TSRMLS_DC
#define TSRMLS_C
@@ -185,6 +191,13 @@ TSRM_API inline void *tsrm_get_ls_cache(void);
#define TSRMLS_FETCH()
#define TSRMLS_FETCH_FROM_CTX(ctx)
#define TSRMLS_SET_CTX(ctx)
+
+#define TSRMG_STATIC(id, type, element)
+#define TSRMLS_CACHE_EXTERN
+#define TSRMLS_CACHE_DEFINE
+#define TSRMLS_CACHE_UPDATE
+
+/* BC only */
#define TSRMLS_D void
#define TSRMLS_DC
#define TSRMLS_C