Skip to content

Commit 1dbaae2

Browse files
committed
Added automatic module globals management
1 parent c3ed914 commit 1dbaae2

File tree

42 files changed

+375
-334
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+375
-334
lines changed

ext/bcmath/bcmath.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "libbcmath/src/bcmath.h"
3333

3434
ZEND_DECLARE_MODULE_GLOBALS(bcmath);
35+
static PHP_GINIT_FUNCTION(bcmath);
3536

3637
/* {{{ arginfo */
3738
static
@@ -127,7 +128,11 @@ zend_module_entry bcmath_module_entry = {
127128
PHP_RSHUTDOWN(bcmath),
128129
PHP_MINFO(bcmath),
129130
NO_VERSION_YET,
130-
STANDARD_MODULE_PROPERTIES
131+
PHP_MODULE_GLOBALS(bcmath),
132+
PHP_GINIT(bcmath),
133+
NULL,
134+
NULL,
135+
STANDARD_MODULE_PROPERTIES_EX
131136
};
132137

133138
#ifdef COMPILE_DL_BCMATH
@@ -140,9 +145,9 @@ PHP_INI_BEGIN()
140145
PHP_INI_END()
141146
/* }}} */
142147

143-
/* {{{ php_bcmath_init_globals
148+
/* {{{ PHP_GINIT_FUNCTION
144149
*/
145-
static void php_bcmath_init_globals(zend_bcmath_globals *bcmath_globals)
150+
static PHP_GINIT_FUNCTION(bcmath)
146151
{
147152
bcmath_globals->bc_precision = 0;
148153
}
@@ -152,8 +157,6 @@ static void php_bcmath_init_globals(zend_bcmath_globals *bcmath_globals)
152157
*/
153158
PHP_MINIT_FUNCTION(bcmath)
154159
{
155-
ZEND_INIT_MODULE_GLOBALS(bcmath, php_bcmath_init_globals, NULL);
156-
157160
REGISTER_INI_ENTRIES();
158161

159162
return SUCCESS;

ext/com_dotnet/com_extension.c

+9-4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
#include "Zend/zend_exceptions.h"
3131

3232
ZEND_DECLARE_MODULE_GLOBALS(com_dotnet)
33+
static PHP_GINIT_FUNCTION(com_dotnet);
34+
3335
TsHashTable php_com_typelibraries;
3436

3537
zend_class_entry
@@ -86,7 +88,11 @@ zend_module_entry com_dotnet_module_entry = {
8688
PHP_RSHUTDOWN(com_dotnet),
8789
PHP_MINFO(com_dotnet),
8890
"0.1",
89-
STANDARD_MODULE_PROPERTIES
91+
PHP_MODULE_GLOBALS(com_dotnet),
92+
PHP_GINIT(com_dotnet),
93+
NULL,
94+
NULL,
95+
STANDARD_MODULE_PROPERTIES_EX
9096
};
9197
/* }}} */
9298

@@ -170,9 +176,9 @@ PHP_INI_BEGIN()
170176
PHP_INI_END()
171177
/* }}} */
172178

173-
/* {{{ php_com_dotnet_init_globals
179+
/* {{{ PHP_GINIT_FUNCTION
174180
*/
175-
static void php_com_dotnet_init_globals(zend_com_dotnet_globals *com_dotnet_globals)
181+
static PHP_GINIT_FUNCTION(com_dotnet)
176182
{
177183
memset(com_dotnet_globals, 0, sizeof(*com_dotnet_globals));
178184
com_dotnet_globals->code_page = CP_ACP;
@@ -185,7 +191,6 @@ PHP_MINIT_FUNCTION(com_dotnet)
185191
{
186192
zend_class_entry ce, *tmp;
187193

188-
ZEND_INIT_MODULE_GLOBALS(com_dotnet, php_com_dotnet_init_globals, NULL);
189194
REGISTER_INI_ENTRIES();
190195

191196
php_com_wrapper_minit(INIT_FUNC_ARGS_PASSTHRU);

ext/date/php_date.c

+8-4
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC);
227227
/* }}} */
228228

229229
ZEND_DECLARE_MODULE_GLOBALS(date)
230+
static PHP_GINIT_FUNCTION(date);
230231

231232
/* True global */
232233
timelib_tzdb *php_date_global_timezone_db;
@@ -305,13 +306,17 @@ zend_module_entry date_module_entry = {
305306
PHP_RSHUTDOWN(date), /* request shutdown */
306307
PHP_MINFO(date), /* extension info */
307308
PHP_VERSION, /* extension version */
308-
STANDARD_MODULE_PROPERTIES
309+
PHP_MODULE_GLOBALS(date), /* globals descriptor */
310+
PHP_GINIT(date), /* globals ctor */
311+
NULL, /* globals dtor */
312+
NULL, /* post deactivate */
313+
STANDARD_MODULE_PROPERTIES_EX
309314
};
310315
/* }}} */
311316

312317

313-
/* {{{ php_date_init_globals */
314-
static void php_date_init_globals(zend_date_globals *date_globals)
318+
/* {{{ PHP_GINIT_FUNCTION */
319+
static PHP_GINIT_FUNCTION(date)
315320
{
316321
date_globals->default_timezone = NULL;
317322
date_globals->timezone = NULL;
@@ -451,7 +456,6 @@ PHP_RSHUTDOWN_FUNCTION(date)
451456
/* {{{ PHP_MINIT_FUNCTION */
452457
PHP_MINIT_FUNCTION(date)
453458
{
454-
ZEND_INIT_MODULE_GLOBALS(date, php_date_init_globals, NULL);
455459
REGISTER_INI_ENTRIES();
456460
#ifdef EXPERIMENTAL_DATE_SUPPORT
457461
date_register_classes(TSRMLS_C);

ext/dba/dba.c

+22-17
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,21 @@ PHP_MINIT_FUNCTION(dba);
168168
PHP_MSHUTDOWN_FUNCTION(dba);
169169
PHP_MINFO_FUNCTION(dba);
170170

171+
ZEND_BEGIN_MODULE_GLOBALS(dba)
172+
char *default_handler;
173+
dba_handler *default_hptr;
174+
ZEND_END_MODULE_GLOBALS(dba)
175+
176+
ZEND_DECLARE_MODULE_GLOBALS(dba)
177+
178+
#ifdef ZTS
179+
#define DBA_G(v) TSRMG(dba_globals_id, zend_dba_globals *, v)
180+
#else
181+
#define DBA_G(v) (dba_globals.v)
182+
#endif
183+
184+
static PHP_GINIT_FUNCTION(dba);
185+
171186
zend_module_entry dba_module_entry = {
172187
STANDARD_MODULE_HEADER,
173188
"dba",
@@ -178,7 +193,11 @@ zend_module_entry dba_module_entry = {
178193
NULL,
179194
PHP_MINFO(dba),
180195
NO_VERSION_YET,
181-
STANDARD_MODULE_PROPERTIES
196+
PHP_MODULE_GLOBALS(dba),
197+
PHP_GINIT(dba),
198+
NULL,
199+
NULL,
200+
STANDARD_MODULE_PROPERTIES_EX
182201
};
183202

184203
#ifdef COMPILE_DL_DBA
@@ -378,19 +397,6 @@ static dba_handler handler[] = {
378397
#endif
379398
/* cdb/cdb_make and ini are no option here */
380399

381-
ZEND_BEGIN_MODULE_GLOBALS(dba)
382-
char *default_handler;
383-
dba_handler *default_hptr;
384-
ZEND_END_MODULE_GLOBALS(dba)
385-
386-
ZEND_DECLARE_MODULE_GLOBALS(dba)
387-
388-
#ifdef ZTS
389-
#define DBA_G(v) TSRMG(dba_globals_id, zend_dba_globals *, v)
390-
#else
391-
#define DBA_G(v) (dba_globals.v)
392-
#endif
393-
394400
static int le_db;
395401
static int le_pdb;
396402
/* }}} */
@@ -499,9 +505,9 @@ PHP_INI_BEGIN()
499505
PHP_INI_END()
500506
/* }}} */
501507

502-
/* {{{ php_dba_init_globals
508+
/* {{{ PHP_GINIT_FUNCTION
503509
*/
504-
static void php_dba_init_globals(zend_dba_globals *dba_globals)
510+
static PHP_GINIT_FUNCTION(dba)
505511
{
506512
dba_globals->default_handler = "";
507513
dba_globals->default_hptr = NULL;
@@ -512,7 +518,6 @@ static void php_dba_init_globals(zend_dba_globals *dba_globals)
512518
*/
513519
PHP_MINIT_FUNCTION(dba)
514520
{
515-
ZEND_INIT_MODULE_GLOBALS(dba, php_dba_init_globals, NULL);
516521
REGISTER_INI_ENTRIES();
517522
le_db = zend_register_list_destructors_ex(dba_close_rsrc, NULL, "dba", module_number);
518523
le_pdb = zend_register_list_destructors_ex(dba_close_pe_rsrc, dba_close_rsrc, "dba persistent", module_number);

ext/exif/exif.c

+10-3
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,9 @@ PHP_INI_BEGIN()
206206
PHP_INI_END()
207207
/* }}} */
208208

209-
/* {{{ php_extname_init_globals
209+
/* {{{ PHP_GINIT_FUNCTION
210210
*/
211-
static void php_exif_init_globals(zend_exif_globals *exif_globals)
211+
static PHP_GINIT_FUNCTION(exif)
212212
{
213213
exif_globals->encode_unicode = NULL;
214214
exif_globals->decode_unicode_be = NULL;
@@ -223,7 +223,6 @@ static void php_exif_init_globals(zend_exif_globals *exif_globals)
223223
Get the size of an image as 4-element array */
224224
PHP_MINIT_FUNCTION(exif)
225225
{
226-
ZEND_INIT_MODULE_GLOBALS(exif, php_exif_init_globals, NULL);
227226
REGISTER_INI_ENTRIES();
228227
REGISTER_LONG_CONSTANT("EXIF_USE_MBSTRING", EXIF_USE_MBSTRING, CONST_CS | CONST_PERSISTENT);
229228
return SUCCESS;
@@ -254,7 +253,15 @@ zend_module_entry exif_module_entry = {
254253
#if ZEND_MODULE_API_NO >= 20010901
255254
EXIF_VERSION,
256255
#endif
256+
#if ZEND_MODULE_API_NO >= 20060613
257+
PHP_MODULE_GLOBALS(exif),
258+
PHP_GINIT(exif),
259+
NULL,
260+
NULL,
261+
STANDARD_MODULE_PROPERTIES_EX
262+
#else
257263
STANDARD_MODULE_PROPERTIES
264+
#endif
258265
};
259266
/* }}} */
260267

ext/fbsql/php_fbsql.c

+9-6
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ struct PHPFBLink
165165

166166
#define DIGEST_BUFFER_SIZE 17 /* fbcDigestPassword() expects a preallocated buffer for 16 bytes plus termination */
167167

168+
ZEND_DECLARE_MODULE_GLOBALS(fbsql)
169+
static PHP_GINIT_FUNCTION(fbsql);
170+
168171
int mdOk(PHPFBLink* link, FBCMetaData* md, char* sql);
169172
char *DigestPassword(char *user, char *password)
170173
{
@@ -620,11 +623,13 @@ zend_module_entry fbsql_module_entry = {
620623
PHP_RSHUTDOWN(fbsql),
621624
PHP_MINFO(fbsql),
622625
NO_VERSION_YET,
623-
STANDARD_MODULE_PROPERTIES
626+
PHP_MODULE_GLOBALS(fbsql),
627+
PHP_GINIT(fbsql),
628+
NULL,
629+
NULL,
630+
STANDARD_MODULE_PROPERTIES_EX
624631
};
625632

626-
ZEND_DECLARE_MODULE_GLOBALS(fbsql)
627-
628633
#ifdef COMPILE_DL_FBSQL
629634
ZEND_GET_MODULE(fbsql)
630635
#endif
@@ -745,7 +750,7 @@ PHP_INI_BEGIN()
745750
PHP_INI_END()
746751
/* }}} */
747752

748-
static void php_fbsql_init_globals(zend_fbsql_globals *fbsql_globals)
753+
static PHP_GINIT_FUNCTION(fbsql)
749754
{
750755
fbsql_globals->persistentCount = 0;
751756

@@ -763,8 +768,6 @@ static void php_fbsql_init_globals(zend_fbsql_globals *fbsql_globals)
763768

764769
PHP_MINIT_FUNCTION(fbsql)
765770
{
766-
ZEND_INIT_MODULE_GLOBALS(fbsql, php_fbsql_init_globals, NULL);
767-
768771
REGISTER_INI_ENTRIES();
769772

770773
fbcInitialize();

ext/fdf/fdf.c

+9-6
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,9 @@ zend_function_entry fdf_functions[] = {
318318
};
319319
/* }}} */
320320

321+
ZEND_DECLARE_MODULE_GLOBALS(fdf)
322+
static PHP_GINIT_FUNCTION(fdf);
323+
321324
zend_module_entry fdf_module_entry = {
322325
STANDARD_MODULE_HEADER,
323326
"fdf",
@@ -328,15 +331,17 @@ zend_module_entry fdf_module_entry = {
328331
NULL,
329332
PHP_MINFO(fdf),
330333
NO_VERSION_YET,
331-
STANDARD_MODULE_PROPERTIES
334+
PHP_MODULE_GLOBALS(fdf),
335+
PHP_GINIT(fdf),
336+
NULL,
337+
NULL,
338+
STANDARD_MODULE_PROPERTIES_EX
332339
};
333340

334341
#ifdef COMPILE_DL_FDF
335342
ZEND_GET_MODULE(fdf)
336343
#endif
337344

338-
ZEND_DECLARE_MODULE_GLOBALS(fdf)
339-
340345
#define FDF_SUCCESS do { FDF_G(error)=FDFErcOK; RETURN_TRUE;} while(0)
341346
#define FDF_FAILURE(err) do { FDF_G(error)=err; RETURN_FALSE;} while(0)
342347

@@ -356,7 +361,7 @@ static sapi_post_entry php_fdf_post_entry = {
356361
fdf_post_handler
357362
};
358363

359-
static void php_fdf_init_globals(zend_fdf_globals *fdf_globals)
364+
static PHP_GINIT_FUNCTION(fdf)
360365
{
361366
memset(fdf_globals, 0, sizeof(*fdf_globals));
362367
}
@@ -367,8 +372,6 @@ static void php_fdf_init_globals(zend_fdf_globals *fdf_globals)
367372
*/
368373
PHP_MINIT_FUNCTION(fdf)
369374
{
370-
ZEND_INIT_MODULE_GLOBALS(fdf, php_fdf_init_globals, NULL);
371-
372375
le_fdf = zend_register_list_destructors_ex(phpi_FDFClose, NULL, "fdf", module_number);
373376

374377
/* add handler for Acrobat FDF form post requests */

ext/gmp/gmp.c

+10-7
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,9 @@ ZEND_END_ARG_INFO()
267267

268268
/* }}} */
269269

270+
ZEND_DECLARE_MODULE_GLOBALS(gmp)
271+
static ZEND_GINIT_FUNCTION(gmp);
272+
270273
/* {{{ gmp_functions[]
271274
*/
272275
zend_function_entry gmp_functions[] = {
@@ -326,12 +329,14 @@ zend_module_entry gmp_module_entry = {
326329
ZEND_MODULE_DEACTIVATE_N(gmp),
327330
ZEND_MODULE_INFO_N(gmp),
328331
NO_VERSION_YET,
329-
STANDARD_MODULE_PROPERTIES
332+
ZEND_MODULE_GLOBALS(gmp),
333+
ZEND_GINIT(gmp),
334+
NULL,
335+
NULL,
336+
STANDARD_MODULE_PROPERTIES_EX
330337
};
331338
/* }}} */
332339

333-
ZEND_DECLARE_MODULE_GLOBALS(gmp)
334-
335340
#ifdef COMPILE_DL_GMP
336341
ZEND_GET_MODULE(gmp)
337342
# ifdef PHP_WIN32
@@ -371,9 +376,9 @@ static void gmp_efree(void *ptr, size_t size)
371376
}
372377
/* }}} */
373378

374-
/* {{{ php_gmp_init_globals
379+
/* {{{ ZEND_GINIT_FUNCTION
375380
*/
376-
static void php_gmp_init_globals(zend_gmp_globals *gmp_globals)
381+
static ZEND_GINIT_FUNCTION(gmp)
377382
{
378383
gmp_globals->rand_initialized = 0;
379384
}
@@ -383,8 +388,6 @@ static void php_gmp_init_globals(zend_gmp_globals *gmp_globals)
383388
*/
384389
ZEND_MODULE_STARTUP_D(gmp)
385390
{
386-
ZEND_INIT_MODULE_GLOBALS(gmp, php_gmp_init_globals, NULL);
387-
388391
le_gmp = zend_register_list_destructors_ex(_php_gmpnum_free, NULL, GMP_RESOURCE_NAME, module_number);
389392
REGISTER_LONG_CONSTANT("GMP_ROUND_ZERO", GMP_ROUND_ZERO, CONST_CS | CONST_PERSISTENT);
390393
REGISTER_LONG_CONSTANT("GMP_ROUND_PLUSINF", GMP_ROUND_PLUSINF, CONST_CS | CONST_PERSISTENT);

0 commit comments

Comments
 (0)