com php-src: add macro to access globals as whole: TSRM/TSRM.h Zend/zend_API.h

From: Date: Thu, 30 Jul 2015 07:05:08 +0000
Subject: com php-src: add macro to access globals as whole: TSRM/TSRM.h Zend/zend_API.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88241@lists.php.net to get a copy of this message
Commit: ffa341de59bafd1625076fbe04a4e44b3ea2d692 Author: Anatol Belski <ab@php.net> Thu, 30 Jul 2015 08:31:00 +0200 Parents: c2bf735e49cf477d9381d5cf6a184921ce2db8cf Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ffa341de59bafd1625076fbe04a4e44b3ea2d692 Log: add macro to access globals as whole Changed paths: M TSRM/TSRM.h M Zend/zend_API.h Diff: diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h index 859b3fa..67adaa3 100644 --- a/TSRM/TSRM.h +++ b/TSRM/TSRM.h @@ -165,9 +165,11 @@ TSRM_API 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 TSRMG(id, type, element) (TSRMG_BULK(id, type)->element) +#define TSRMG_BULK(id, type) ((type) (*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(id)]) -#define TSRMG_STATIC(id, type, element) (((type) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element) +#define TSRMG_STATIC(id, type, element) (TSRMG_BULK_STATIC(id, type)->element) +#define TSRMG_BULK_STATIC(id, type) ((type) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(id)]) #define TSRMLS_CACHE_EXTERN() extern TSRM_TLS void *TSRMLS_CACHE #define TSRMLS_CACHE_DEFINE() TSRM_TLS void *TSRMLS_CACHE = NULL #if ZEND_DEBUG diff --git a/Zend/zend_API.h b/Zend/zend_API.h index ee3c8d9..8dc3e8a 100644 --- a/Zend/zend_API..h +++ b/Zend/zend_API.h @@ -159,6 +159,7 @@ typedef struct _zend_fcall_info_cache { #define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \ ts_allocate_id(&module_name##_globals_id, sizeof(zend_##module_name##_globals), (ts_allocate_ctor) globals_ctor, (ts_allocate_dtor) globals_dtor); #define ZEND_MODULE_GLOBALS_ACCESSOR(module_name, v) ZEND_TSRMG(module_name##_globals_id, zend_##module_name##_globals *, v) +#define ZEND_MODULE_GLOBALS_BULK(module_name) TSRMG_BULK(module_name##_globals_id, zend_##module_name##_globals *) #else @@ -169,6 +170,7 @@ typedef struct _zend_fcall_info_cache { #define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \ globals_ctor(&module_name##_globals); #define ZEND_MODULE_GLOBALS_ACCESSOR(module_name, v) (module_name##_globals.v) +#define ZEND_MODULE_GLOBALS_BULK(module_name) (&module_name##_globals) #endif

« previous php.cvs (#88241) next »