]> granicus.if.org Git - php/commitdiff
Added automatic module globals management
authorDmitry Stogov <dmitry@php.net>
Thu, 15 Jun 2006 18:33:09 +0000 (18:33 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 15 Jun 2006 18:33:09 +0000 (18:33 +0000)
42 files changed:
ext/bcmath/bcmath.c
ext/com_dotnet/com_extension.c
ext/date/php_date.c
ext/dba/dba.c
ext/exif/exif.c
ext/fbsql/php_fbsql.c
ext/fdf/fdf.c
ext/gmp/gmp.c
ext/iconv/iconv.c
ext/imap/php_imap.c
ext/interbase/interbase.c
ext/ldap/ldap.c
ext/libxml/libxml.c
ext/libxml/php_libxml.h
ext/mbstring/mbstring.c
ext/mcrypt/mcrypt.c
ext/mime_magic/mime_magic.c
ext/mssql/php_mssql.c
ext/mysql/php_mysql.c
ext/mysqli/mysqli.c
ext/oci8/oci8.c
ext/odbc/php_odbc.c
ext/odbc/php_odbc_includes.h
ext/pcntl/pcntl.c
ext/pcre/php_pcre.c
ext/pdo/pdo.c
ext/pdo_dblib/pdo_dblib.c
ext/pgsql/pgsql.c
ext/posix/posix.c
ext/recode/recode.c
ext/session/session.c
ext/skeleton/skeleton.c
ext/snmp/snmp.c
ext/sockets/sockets.c
ext/spl/php_spl.c
ext/sqlite/sqlite.c
ext/sybase_ct/php_sybase_ct.c
ext/tidy/tidy.c
ext/tokenizer/tokenizer.c
ext/xml/php_xml.h
ext/xml/xml.c
ext/zlib/zlib.c

index 1acd12e9340d8d26d6c80b5d8f6b50ca676493f8..05bfb06642ef6644373e26d23167f8767a1a42ae 100644 (file)
@@ -32,6 +32,7 @@
 #include "libbcmath/src/bcmath.h"
 
 ZEND_DECLARE_MODULE_GLOBALS(bcmath);
+static PHP_GINIT_FUNCTION(bcmath);
 
 /* {{{ arginfo */
 static
@@ -127,7 +128,11 @@ zend_module_entry bcmath_module_entry = {
        PHP_RSHUTDOWN(bcmath),
        PHP_MINFO(bcmath),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(bcmath),
+       PHP_GINIT(bcmath),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_BCMATH
@@ -140,9 +145,9 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_bcmath_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_bcmath_init_globals(zend_bcmath_globals *bcmath_globals)
+static PHP_GINIT_FUNCTION(bcmath)
 {
        bcmath_globals->bc_precision = 0;
 }
@@ -152,8 +157,6 @@ static void php_bcmath_init_globals(zend_bcmath_globals *bcmath_globals)
  */
 PHP_MINIT_FUNCTION(bcmath)
 {
-       ZEND_INIT_MODULE_GLOBALS(bcmath, php_bcmath_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
 
        return SUCCESS;
index 93ef53039487ffe66d1f78a082791a881618f419..3c73ec594e0e6f17d8e7be8b154d33006601b391 100644 (file)
@@ -30,6 +30,8 @@
 #include "Zend/zend_exceptions.h"
 
 ZEND_DECLARE_MODULE_GLOBALS(com_dotnet)
+static PHP_GINIT_FUNCTION(com_dotnet);
+
 TsHashTable php_com_typelibraries;
 
 zend_class_entry
@@ -86,7 +88,11 @@ zend_module_entry com_dotnet_module_entry = {
        PHP_RSHUTDOWN(com_dotnet),
        PHP_MINFO(com_dotnet),
        "0.1",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(com_dotnet),
+       PHP_GINIT(com_dotnet),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -170,9 +176,9 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_com_dotnet_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_com_dotnet_init_globals(zend_com_dotnet_globals *com_dotnet_globals)
+static PHP_GINIT_FUNCTION(com_dotnet)
 {
        memset(com_dotnet_globals, 0, sizeof(*com_dotnet_globals));
        com_dotnet_globals->code_page = CP_ACP;
@@ -185,7 +191,6 @@ PHP_MINIT_FUNCTION(com_dotnet)
 {
        zend_class_entry ce, *tmp;
 
-       ZEND_INIT_MODULE_GLOBALS(com_dotnet, php_com_dotnet_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
        php_com_wrapper_minit(INIT_FUNC_ARGS_PASSTHRU);
index 92249d266e0fd350e5ce6c4fa40a85ece15e0f15..18c0f32b579af5a62ed489846874b436e4ff1b35 100644 (file)
@@ -227,6 +227,7 @@ static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC);
 /* }}} */
 
 ZEND_DECLARE_MODULE_GLOBALS(date)
+static PHP_GINIT_FUNCTION(date);
 
 /* True global */
 timelib_tzdb *php_date_global_timezone_db;
@@ -305,13 +306,17 @@ zend_module_entry date_module_entry = {
        PHP_RSHUTDOWN(date),        /* request shutdown */
        PHP_MINFO(date),            /* extension info */
        PHP_VERSION,                /* extension version */
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(date),   /* globals descriptor */
+       PHP_GINIT(date),            /* globals ctor */
+       NULL,                       /* globals dtor */
+       NULL,                       /* post deactivate */
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
 
-/* {{{ php_date_init_globals */
-static void php_date_init_globals(zend_date_globals *date_globals)
+/* {{{ PHP_GINIT_FUNCTION */
+static PHP_GINIT_FUNCTION(date)
 {
        date_globals->default_timezone = NULL;
        date_globals->timezone = NULL;
@@ -451,7 +456,6 @@ PHP_RSHUTDOWN_FUNCTION(date)
 /* {{{ PHP_MINIT_FUNCTION */
 PHP_MINIT_FUNCTION(date)
 {
-       ZEND_INIT_MODULE_GLOBALS(date, php_date_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 #ifdef EXPERIMENTAL_DATE_SUPPORT
        date_register_classes(TSRMLS_C);
index 7c353595342bf1cdbbff8287c9ef73d8bf21f35f..6a603a1f7eb7442e18f1781b422dfea2f2169448 100644 (file)
@@ -168,6 +168,21 @@ PHP_MINIT_FUNCTION(dba);
 PHP_MSHUTDOWN_FUNCTION(dba);
 PHP_MINFO_FUNCTION(dba);
 
+ZEND_BEGIN_MODULE_GLOBALS(dba)
+       char *default_handler;
+       dba_handler *default_hptr;
+ZEND_END_MODULE_GLOBALS(dba) 
+
+ZEND_DECLARE_MODULE_GLOBALS(dba)
+
+#ifdef ZTS
+#define DBA_G(v) TSRMG(dba_globals_id, zend_dba_globals *, v)
+#else
+#define DBA_G(v) (dba_globals.v)
+#endif 
+
+static PHP_GINIT_FUNCTION(dba);
+
 zend_module_entry dba_module_entry = {
        STANDARD_MODULE_HEADER,
        "dba",
@@ -178,7 +193,11 @@ zend_module_entry dba_module_entry = {
        NULL,
        PHP_MINFO(dba),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(dba),
+       PHP_GINIT(dba),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_DBA
@@ -378,19 +397,6 @@ static dba_handler handler[] = {
 #endif
 /* cdb/cdb_make and ini are no option here */
 
-ZEND_BEGIN_MODULE_GLOBALS(dba)
-       char *default_handler;
-       dba_handler *default_hptr;
-ZEND_END_MODULE_GLOBALS(dba) 
-
-ZEND_DECLARE_MODULE_GLOBALS(dba)
-
-#ifdef ZTS
-#define DBA_G(v) TSRMG(dba_globals_id, zend_dba_globals *, v)
-#else
-#define DBA_G(v) (dba_globals.v)
-#endif 
-
 static int le_db;
 static int le_pdb;
 /* }}} */
@@ -499,9 +505,9 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
  
-/* {{{ php_dba_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_dba_init_globals(zend_dba_globals *dba_globals)
+static PHP_GINIT_FUNCTION(dba)
 {
        dba_globals->default_handler = "";
        dba_globals->default_hptr    = NULL;
@@ -512,7 +518,6 @@ static void php_dba_init_globals(zend_dba_globals *dba_globals)
  */
 PHP_MINIT_FUNCTION(dba)
 {
-       ZEND_INIT_MODULE_GLOBALS(dba, php_dba_init_globals, NULL);
        REGISTER_INI_ENTRIES();
        le_db = zend_register_list_destructors_ex(dba_close_rsrc, NULL, "dba", module_number);
        le_pdb = zend_register_list_destructors_ex(dba_close_pe_rsrc, dba_close_rsrc, "dba persistent", module_number);
index db91238bdef3057021554c21ebfe43379109e387..9def821682060c503c9041fe96a7d2f4b97425e4 100644 (file)
@@ -206,9 +206,9 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
  
-/* {{{ php_extname_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_exif_init_globals(zend_exif_globals *exif_globals)
+static PHP_GINIT_FUNCTION(exif)
 {
        exif_globals->encode_unicode    = NULL;
        exif_globals->decode_unicode_be = NULL;
@@ -223,7 +223,6 @@ static void php_exif_init_globals(zend_exif_globals *exif_globals)
    Get the size of an image as 4-element array */
 PHP_MINIT_FUNCTION(exif)
 {
-       ZEND_INIT_MODULE_GLOBALS(exif, php_exif_init_globals, NULL);
        REGISTER_INI_ENTRIES();
        REGISTER_LONG_CONSTANT("EXIF_USE_MBSTRING", EXIF_USE_MBSTRING, CONST_CS | CONST_PERSISTENT); 
        return SUCCESS;
@@ -254,7 +253,15 @@ zend_module_entry exif_module_entry = {
 #if ZEND_MODULE_API_NO >= 20010901
        EXIF_VERSION,
 #endif
+#if ZEND_MODULE_API_NO >= 20060613
+       PHP_MODULE_GLOBALS(exif),
+       PHP_GINIT(exif),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
+#else  
        STANDARD_MODULE_PROPERTIES
+#endif
 };
 /* }}} */
 
index 3174defd9d5843dc3ca56a69695707b85f839e67..e78d14bffe7486f60ce824fcf58b3cba6c72d29e 100644 (file)
@@ -165,6 +165,9 @@ struct PHPFBLink
 
 #define DIGEST_BUFFER_SIZE 17                  /* fbcDigestPassword() expects a preallocated buffer for 16 bytes plus termination */
 
+ZEND_DECLARE_MODULE_GLOBALS(fbsql)
+static PHP_GINIT_FUNCTION(fbsql);
+
 int mdOk(PHPFBLink* link, FBCMetaData* md, char* sql);
 char *DigestPassword(char *user, char *password)
 {
@@ -620,11 +623,13 @@ zend_module_entry fbsql_module_entry = {
        PHP_RSHUTDOWN(fbsql),
        PHP_MINFO(fbsql),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(fbsql),
+       PHP_GINIT(fbsql),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
-ZEND_DECLARE_MODULE_GLOBALS(fbsql)
-
 #ifdef COMPILE_DL_FBSQL
 ZEND_GET_MODULE(fbsql)
 #endif
@@ -745,7 +750,7 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */    
 
-static void php_fbsql_init_globals(zend_fbsql_globals *fbsql_globals)
+static PHP_GINIT_FUNCTION(fbsql)
 {
        fbsql_globals->persistentCount = 0;
 
@@ -763,8 +768,6 @@ static void php_fbsql_init_globals(zend_fbsql_globals *fbsql_globals)
 
 PHP_MINIT_FUNCTION(fbsql)
 {
-       ZEND_INIT_MODULE_GLOBALS(fbsql, php_fbsql_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
 
        fbcInitialize();
index 3fe953b9568907029d24aa2413252929b4421ada..252a476ad1c7f54561c6f08f41b4fdf9daa2b078 100644 (file)
@@ -318,6 +318,9 @@ zend_function_entry fdf_functions[] = {
 };
 /* }}} */
 
+ZEND_DECLARE_MODULE_GLOBALS(fdf)
+static PHP_GINIT_FUNCTION(fdf);
+
 zend_module_entry fdf_module_entry = {
     STANDARD_MODULE_HEADER,
        "fdf", 
@@ -328,15 +331,17 @@ zend_module_entry fdf_module_entry = {
        NULL,
        PHP_MINFO(fdf), 
     NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+    PHP_MODULE_GLOBALS(fdf),
+    PHP_GINIT(fdf),
+    NULL,
+    NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_FDF
 ZEND_GET_MODULE(fdf)
 #endif
 
-ZEND_DECLARE_MODULE_GLOBALS(fdf)
-
 #define FDF_SUCCESS do { FDF_G(error)=FDFErcOK; RETURN_TRUE;} while(0)
 #define FDF_FAILURE(err)  do { FDF_G(error)=err; RETURN_FALSE;} while(0)
 
@@ -356,7 +361,7 @@ static sapi_post_entry php_fdf_post_entry = {
        fdf_post_handler
 };
 
-static void php_fdf_init_globals(zend_fdf_globals *fdf_globals)
+static PHP_GINIT_FUNCTION(fdf)
 {
        memset(fdf_globals, 0, sizeof(*fdf_globals));
 }
@@ -367,8 +372,6 @@ static void php_fdf_init_globals(zend_fdf_globals *fdf_globals)
  */
 PHP_MINIT_FUNCTION(fdf)
 {
-       ZEND_INIT_MODULE_GLOBALS(fdf, php_fdf_init_globals, NULL);
-
        le_fdf = zend_register_list_destructors_ex(phpi_FDFClose, NULL, "fdf", module_number);
 
        /* add handler for Acrobat FDF form post requests */
index 163c46b6fe4f0c82d722a0e6fa139c4553c0c35e..4a96860a1d9be0f658f8ed4bb5dd6e08b6df42d1 100644 (file)
@@ -267,6 +267,9 @@ ZEND_END_ARG_INFO()
 
 /* }}} */
 
+ZEND_DECLARE_MODULE_GLOBALS(gmp)
+static ZEND_GINIT_FUNCTION(gmp);
+
 /* {{{ gmp_functions[]
  */
 zend_function_entry gmp_functions[] = {
@@ -326,12 +329,14 @@ zend_module_entry gmp_module_entry = {
        ZEND_MODULE_DEACTIVATE_N(gmp),
        ZEND_MODULE_INFO_N(gmp),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       ZEND_MODULE_GLOBALS(gmp),
+       ZEND_GINIT(gmp),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
-ZEND_DECLARE_MODULE_GLOBALS(gmp)
-
 #ifdef COMPILE_DL_GMP
 ZEND_GET_MODULE(gmp)
 # ifdef PHP_WIN32
@@ -371,9 +376,9 @@ static void gmp_efree(void *ptr, size_t size)
 }
 /* }}} */
 
-/* {{{ php_gmp_init_globals
+/* {{{ ZEND_GINIT_FUNCTION
  */
-static void php_gmp_init_globals(zend_gmp_globals *gmp_globals)
+static ZEND_GINIT_FUNCTION(gmp)
 {
        gmp_globals->rand_initialized = 0;
 }
@@ -383,8 +388,6 @@ static void php_gmp_init_globals(zend_gmp_globals *gmp_globals)
  */
 ZEND_MODULE_STARTUP_D(gmp)
 {
-       ZEND_INIT_MODULE_GLOBALS(gmp, php_gmp_init_globals, NULL);
-
        le_gmp = zend_register_list_destructors_ex(_php_gmpnum_free, NULL, GMP_RESOURCE_NAME, module_number);
        REGISTER_LONG_CONSTANT("GMP_ROUND_ZERO", GMP_ROUND_ZERO, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("GMP_ROUND_PLUSINF", GMP_ROUND_PLUSINF, CONST_CS | CONST_PERSISTENT);
index 6b7c483759ce5d7346fcc10759642ec13d8e8807..2bd527cf79bf7d9422f1f0701f89b055b7c703c3 100644 (file)
@@ -80,6 +80,9 @@ zend_function_entry iconv_functions[] = {
 };
 /* }}} */
 
+ZEND_DECLARE_MODULE_GLOBALS(iconv)
+static PHP_GINIT_FUNCTION(iconv);
+
 /* {{{ iconv_module_entry
  */
 zend_module_entry iconv_module_entry = {
@@ -92,16 +95,27 @@ zend_module_entry iconv_module_entry = {
        NULL,
        PHP_MINFO(miconv),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(iconv),
+       PHP_GINIT(iconv),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
-ZEND_DECLARE_MODULE_GLOBALS(iconv)
-
 #ifdef COMPILE_DL_ICONV
 ZEND_GET_MODULE(iconv)
 #endif
 
+/* {{{ PHP_GINIT_FUNCTION */
+static PHP_GINIT_FUNCTION(iconv)
+{
+       iconv_globals->input_encoding = NULL;
+       iconv_globals->output_encoding = NULL;
+       iconv_globals->internal_encoding = NULL;
+}
+/* }}} */
+
 #ifdef HAVE_LIBICONV
 #define iconv libiconv
 #endif
@@ -151,21 +165,11 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_iconv_init_globals */
-static void php_iconv_init_globals(zend_iconv_globals *iconv_globals)
-{
-       iconv_globals->input_encoding = NULL;
-       iconv_globals->output_encoding = NULL;
-       iconv_globals->internal_encoding = NULL;
-}
-/* }}} */
-
 /* {{{ PHP_MINIT_FUNCTION */
 PHP_MINIT_FUNCTION(miconv)
 {
        char *version = "unknown";
 
-       ZEND_INIT_MODULE_GLOBALS(iconv, php_iconv_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
 #if HAVE_LIBICONV
index 67be96b8e3dff0de512037e54557520551b7aab8..d4dc2cb0001fec5083e85ef83b646145415e19c5 100644 (file)
@@ -80,6 +80,8 @@ unsigned long find_rightmost_bit(unsigned long *valptr);
 void fs_give(void **block);
 void *fs_get(size_t size);
 
+ZEND_DECLARE_MODULE_GLOBALS(imap)
+static PHP_GINIT_FUNCTION(imap);
 
 /* {{{ imap_functions[]
  */
@@ -175,12 +177,14 @@ zend_module_entry imap_module_entry = {
        PHP_RSHUTDOWN(imap),
        PHP_MINFO(imap),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(imap),
+       PHP_GINIT(imap),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
-ZEND_DECLARE_MODULE_GLOBALS(imap)
-
 #ifdef COMPILE_DL_IMAP
 ZEND_GET_MODULE(imap)
 #endif
@@ -397,9 +401,9 @@ void mail_getacl(MAILSTREAM *stream, char *mailbox, ACLLIST *alist)
 #endif
 
 
-/* {{{ php_imap_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_imap_init_globals(zend_imap_globals *imap_globals)
+static PHP_GINIT_FUNCTION(imap)
 {
        imap_globals->imap_user = NIL;
        imap_globals->imap_password = NIL;
@@ -433,8 +437,6 @@ PHP_MINIT_FUNCTION(imap)
 {
        unsigned long sa_all =  SA_MESSAGES | SA_RECENT | SA_UNSEEN | SA_UIDNEXT | SA_UIDVALIDITY;
 
-       ZEND_INIT_MODULE_GLOBALS(imap, php_imap_init_globals, NULL)
-
 #ifndef PHP_WIN32
        mail_link(&unixdriver);         /* link in the unix driver */
        mail_link(&mhdriver);           /* link in the mh driver */
index bc0b856694a687fee28040afe617ae9ca773536c..45ca87f633d12196ee80bbb8b80dbbf295c9b776 100644 (file)
@@ -43,6 +43,9 @@
 #define COMMIT                 1
 #define RETAIN                 2
 
+ZEND_DECLARE_MODULE_GLOBALS(ibase)
+static PHP_GINIT_FUNCTION(ibase);
+
 /* {{{ extension definition structures */
 zend_function_entry ibase_functions[] = {
        PHP_FE(ibase_connect, NULL)
@@ -178,7 +181,11 @@ zend_module_entry ibase_module_entry = {
        PHP_RSHUTDOWN(ibase),
        PHP_MINFO(ibase),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(ibase),
+       PHP_GINIT(ibase),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_INTERBASE
@@ -188,8 +195,6 @@ ZEND_GET_MODULE(ibase)
 /* True globals, no need for thread safety */
 int le_link, le_plink, le_trans;
 
-ZEND_DECLARE_MODULE_GLOBALS(ibase)
-
 /* }}} */
 
 /* error handling ---------------------------- */
@@ -448,7 +453,7 @@ PHP_INI_BEGIN()
        PHP_INI_ENTRY("ibase.timeformat", IB_DEF_TIME_FMT, PHP_INI_ALL, NULL)
 PHP_INI_END()
 
-static void php_ibase_init_globals(zend_ibase_globals *ibase_globals)
+static PHP_GINIT_FUNCTION(ibase)
 {
        ibase_globals->num_persistent = ibase_globals->num_links = 0;
        ibase_globals->sql_code = *ibase_globals->errmsg = 0;
@@ -457,8 +462,6 @@ static void php_ibase_init_globals(zend_ibase_globals *ibase_globals)
 
 PHP_MINIT_FUNCTION(ibase)
 {
-       ZEND_INIT_MODULE_GLOBALS(ibase, php_ibase_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
 
        le_link = zend_register_list_destructors_ex(_php_ibase_close_link, NULL, LE_LINK, module_number);
index 53a970e5d8b685df02a6ee264267cc8e4e0574d5..ac1e782b10a9cf35f126c0bbcb28fb4d8ab7df66 100644 (file)
@@ -78,6 +78,7 @@ typedef struct {
 } ldap_resultentry;
 
 ZEND_DECLARE_MODULE_GLOBALS(ldap)
+static PHP_GINIT_FUNCTION(ldap);
 
 static
        ZEND_BEGIN_ARG_INFO(arg3to6of6_force_ref, 0)
@@ -177,7 +178,11 @@ zend_module_entry ldap_module_entry = {
        NULL,
        PHP_MINFO(ldap), 
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(ldap),
+       PHP_GINIT(ldap),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_LDAP
@@ -222,9 +227,9 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_ldap_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_ldap_init_globals(zend_ldap_globals *ldap_globals)
+static PHP_GINIT_FUNCTION(ldap)
 {
        ldap_globals->num_links = 0;
 }
@@ -234,8 +239,6 @@ static void php_ldap_init_globals(zend_ldap_globals *ldap_globals)
  */
 PHP_MINIT_FUNCTION(ldap)
 {
-       ZEND_INIT_MODULE_GLOBALS(ldap, php_ldap_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
 
        /* Constants to be used with deref-parameter in php_ldap_do_search() */
index b2d55c6122a5501ebf0cecdee97bf2f7303775b4..b2df3040088e79579917569f5ab32d424af098ad 100644 (file)
@@ -60,11 +60,8 @@ typedef struct _php_libxml_func_handler {
 
 static HashTable php_libxml_exports;
 
-#ifdef ZTS
-int libxml_globals_id;
-#else
-PHP_LIBXML_API php_libxml_globals libxml_globals;
-#endif
+ZEND_DECLARE_MODULE_GLOBALS(libxml)
+static PHP_GINIT_FUNCTION(libxml);
 
 zend_class_entry *libxmlerror_class_entry;
 
@@ -106,7 +103,11 @@ zend_module_entry libxml_module_entry = {
        PHP_RSHUTDOWN(libxml),   /* per-request shutdown function */
        PHP_MINFO(libxml),       /* information function */
     NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+    PHP_MODULE_GLOBALS(libxml), /* globals descriptor */
+    PHP_GINIT(libxml),          /* globals ctor */
+    NULL,                       /* globals dtor */
+    NULL,                       /* post deactivate */
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 /* }}} */
@@ -237,14 +238,12 @@ static void php_libxml_node_free_list(xmlNodePtr node TSRMLS_DC)
 /* }}} */
 
 /* {{{ startup, shutdown and info functions */
-#ifdef ZTS
-static void php_libxml_init_globals(php_libxml_globals *libxml_globals_p TSRMLS_DC)
+static PHP_GINIT_FUNCTION(libxml)
 {
-       LIBXML(stream_context) = NULL;
-       LIBXML(error_buffer).c = NULL;
-       LIBXML(error_list) = NULL;
+       libxml_globals->stream_context = NULL;
+       libxml_globals->error_buffer.c = NULL;
+       libxml_globals->error_list = NULL;
 }
-#endif
 
 /* Channel libxml file io layer through the PHP streams subsystem.
  * This allows use of ftps:// and https:// urls */
@@ -575,14 +574,6 @@ PHP_MINIT_FUNCTION(libxml)
 
        php_libxml_initialize();
 
-#ifdef ZTS
-       ts_allocate_id(&libxml_globals_id, sizeof(php_libxml_globals), (ts_allocate_ctor) php_libxml_init_globals, NULL);
-#else
-       LIBXML(stream_context) = NULL;
-       LIBXML(error_buffer).c = NULL;
-       LIBXML(error_list) = NULL;
-#endif
-
        REGISTER_LONG_CONSTANT("LIBXML_VERSION",                        LIBXML_VERSION,                 CONST_CS | CONST_PERSISTENT);
        REGISTER_STRING_CONSTANT("LIBXML_DOTTED_VERSION",       LIBXML_DOTTED_VERSION,  CONST_CS | CONST_PERSISTENT);
 
index afc538e84792ee12c5ecbe04423f8df3c239a3bf..badbd6bec8d2d72025cb05472f3213e21be06096 100644 (file)
@@ -37,11 +37,11 @@ extern zend_module_entry libxml_module_entry;
 
 #define LIBXML_SAVE_NOEMPTYTAG 1<<2
 
-typedef struct {
+ZEND_BEGIN_MODULE_GLOBALS(libxml)
        zval *stream_context;
        smart_str error_buffer;
        zend_llist *error_list;
-} php_libxml_globals;
+ZEND_END_MODULE_GLOBALS(libxml)
 
 typedef struct _libxml_doc_props {
        int formatoutput;
@@ -103,7 +103,7 @@ PHP_LIBXML_API void php_libxml_initialize();
 PHP_LIBXML_API void php_libxml_shutdown();
 
 #ifdef ZTS
-#define LIBXML(v) TSRMG(libxml_globals_id, php_libxml_globals *, v)
+#define LIBXML(v) TSRMG(libxml_globals_id, zend_libxml_globals *, v)
 #else
 #define LIBXML(v) (libxml_globals.v)
 #endif
index 32d1bffaaed19e92da4e5aa5a1ac759aca2e0265..c1a953cb11ab699556c548f19dcfe8318db5f5a2 100644 (file)
@@ -81,8 +81,9 @@
 /* }}} */
 
 /* {{{ prototypes */
-static void _php_mb_globals_ctor(zend_mbstring_globals *pglobals TSRMLS_DC);
-static void _php_mb_globals_dtor(zend_mbstring_globals *pglobals TSRMLS_DC);
+ZEND_DECLARE_MODULE_GLOBALS(mbstring)
+static PHP_GINIT_FUNCTION(mbstring);
+static PHP_GSHUTDOWN_FUNCTION(mbstring);
 /* }}} */
 
 /* {{{ php_mb_default_identify_list */
@@ -252,7 +253,11 @@ zend_module_entry mbstring_module_entry = {
        PHP_RSHUTDOWN(mbstring),
        PHP_MINFO(mbstring),
     NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+    PHP_MODULE_GLOBALS(mbstring),
+    PHP_GINIT(mbstring),
+    PHP_GSHUTDOWN(mbstring),
+    NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -264,8 +269,6 @@ static sapi_post_entry php_post_entries[] = {
 };
 /* }}} */
 
-ZEND_DECLARE_MODULE_GLOBALS(mbstring)
-
 #ifdef COMPILE_DL_MBSTRING
 ZEND_GET_MODULE(mbstring)
 # ifdef PHP_WIN32
@@ -774,7 +777,7 @@ PHP_INI_END()
 /* }}} */
 
 /* {{{ module global initialize handler */
-static void _php_mb_globals_ctor(zend_mbstring_globals *pglobals TSRMLS_DC)
+static PHP_GINIT_FUNCTION(mbstring)
 {
        MBSTRG(language) = mbfl_no_language_uni;
        MBSTRG(current_language) = MBSTRG(language);
@@ -807,18 +810,18 @@ static void _php_mb_globals_ctor(zend_mbstring_globals *pglobals TSRMLS_DC)
        MBSTRG(func_overload) = 0;
        MBSTRG(encoding_translation) = 0;
        MBSTRG(strict_detection) = 0;
-       pglobals->outconv = NULL;
+       mbstring_globals->outconv = NULL;
 #if HAVE_MBREGEX
-       _php_mb_regex_globals_ctor(pglobals TSRMLS_CC);
+       _php_mb_regex_globals_ctor(mbstring_globals TSRMLS_CC);
 #endif
 }
 /* }}} */
 
-/* {{{ static void _php_mb_globals_dtor() */
-static void _php_mb_globals_dtor(zend_mbstring_globals *pglobals TSRMLS_DC)
+/* {{{ PHP_GSHUTDOWN_FUNCTION */
+static PHP_GSHUTDOWN_FUNCTION(mbstring)
 {
 #if HAVE_MBREGEX
-       _php_mb_regex_globals_dtor(pglobals TSRMLS_CC);
+       _php_mb_regex_globals_dtor(mbstring_globals TSRMLS_CC);
 #endif
 }
 /* }}} */
@@ -828,14 +831,6 @@ PHP_MINIT_FUNCTION(mbstring)
 {
        __mbfl_allocators = &_php_mb_allocators;
 
-#ifdef ZTS
-       ts_allocate_id(&mbstring_globals_id, sizeof(zend_mbstring_globals),
-               (ts_allocate_ctor) _php_mb_globals_ctor,
-               (ts_allocate_dtor) _php_mb_globals_dtor);
-#else
-       _php_mb_globals_ctor(&mbstring_globals TSRMLS_CC);
-#endif
-
        REGISTER_INI_ENTRIES();
 
        if (MBSTRG(encoding_translation)) {
@@ -879,12 +874,6 @@ PHP_MSHUTDOWN_FUNCTION(mbstring)
        PHP_MSHUTDOWN(mb_regex) (INIT_FUNC_ARGS_PASSTHRU);
 #endif
 
-#ifdef ZTS
-       ts_free_id(mbstring_globals_id);
-#else
-       _php_mb_globals_dtor(&mbstring_globals TSRMLS_CC);
-#endif
-
        return SUCCESS;
 }
 /* }}} */
index da4ce8ef79e8dd5f7b112ade1e06f0b0a37c50e4..4f04977652e015b94e383d6dac21e19b8b29de42 100644 (file)
@@ -93,6 +93,8 @@ static PHP_MINFO_FUNCTION(mcrypt);
 static PHP_MINIT_FUNCTION(mcrypt);
 static PHP_MSHUTDOWN_FUNCTION(mcrypt);
 
+ZEND_DECLARE_MODULE_GLOBALS(mcrypt)
+
 zend_module_entry mcrypt_module_entry = {
        STANDARD_MODULE_HEADER,
        "mcrypt", 
@@ -101,11 +103,13 @@ zend_module_entry mcrypt_module_entry = {
        NULL, NULL,
        PHP_MINFO(mcrypt),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES,
+       PHP_MODULE_GLOBALS(mcrypt),
+       NULL,
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
-ZEND_DECLARE_MODULE_GLOBALS(mcrypt)
-
 #ifdef COMPILE_DL_MCRYPT
 ZEND_GET_MODULE(mcrypt)
 #endif
@@ -245,11 +249,6 @@ static void php_mcrypt_module_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
     
 static PHP_MINIT_FUNCTION(mcrypt)
 {
-#if defined(ZTS)
-    ZEND_INIT_MODULE_GLOBALS(mcrypt, NULL, NULL);
-    Z_TYPE(mcrypt_module_entry) = type;
-#endif
-       
        le_mcrypt = zend_register_list_destructors_ex(php_mcrypt_module_dtor, NULL, "mcrypt", module_number);
     
        /* modes for mcrypt_??? routines */
index 51bd495aa2cdcd30297518d6c4f1cb50760cd1a0..b34418ef5d06eb1f2665cba173c3950358ec7f39 100644 (file)
@@ -212,7 +212,7 @@ static magic_req_rec *magic_set_config(void);
 static void magic_free_config(magic_req_rec *);
 
 ZEND_DECLARE_MODULE_GLOBALS(mime_magic)
-
+static PHP_GINIT_FUNCTION(mime_magic);
 
 /* True global resources - no need for thread safety here */
 static magic_server_config_rec mime_global;
@@ -240,7 +240,15 @@ zend_module_entry mime_magic_module_entry = {
 #if ZEND_MODULE_API_NO >= 20010901
        "0.1", 
 #endif
+#if ZEND_MODULE_API_NO >= 20060613
+       PHP_MODULE_GLOBALS(mime_magic),
+       PHP_GINIT(mime_magic),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
+#else
        STANDARD_MODULE_PROPERTIES
+#endif
 };
 /* }}} */
 
@@ -256,9 +264,9 @@ STD_PHP_INI_BOOLEAN("mime_magic.debug", "0", PHP_INI_SYSTEM, OnUpdateBool, debug
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_mime_magic_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_mime_magic_init_globals(zend_mime_magic_globals *mime_magic_globals)
+static PHP_GINIT_FUNCTION(mime_magic)
 {
        memset(mime_magic_globals, 0, sizeof(zend_mime_magic_globals));
        mime_global.magic = NULL;
@@ -270,7 +278,6 @@ static void php_mime_magic_init_globals(zend_mime_magic_globals *mime_magic_glob
  */
 PHP_MINIT_FUNCTION(mime_magic)
 {
-       ZEND_INIT_MODULE_GLOBALS(mime_magic, php_mime_magic_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
        if(MIME_MAGIC_G(magicfile)) {
index cce69ad92f7fd9f73b092fd8d30a82e61f4d4d2e..6b186d7822f5b15103c274a51130186e324019c5 100644 (file)
@@ -81,6 +81,9 @@ zend_function_entry mssql_functions[] = {
        {NULL, NULL, NULL}
 };
 
+ZEND_DECLARE_MODULE_GLOBALS(mssql)
+static PHP_GINIT_FUNCTION(mssql);
+
 zend_module_entry mssql_module_entry = 
 {
        STANDARD_MODULE_HEADER,
@@ -91,12 +94,14 @@ zend_module_entry mssql_module_entry =
        PHP_RINIT(mssql), 
        PHP_RSHUTDOWN(mssql), 
        PHP_MINFO(mssql), 
-        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       NO_VERSION_YET,
+       PHP_MODULE_GLOBALS(mssql),
+       PHP_GINIT(mssql),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
-ZEND_DECLARE_MODULE_GLOBALS(mssql)
-
 #ifdef COMPILE_DL_MSSQL
 ZEND_GET_MODULE(mssql)
 # ifdef PHP_WIN32
@@ -273,7 +278,7 @@ static void _mssql_bind_hash_dtor(void *data)
        zval_ptr_dtor(&(bind->zval));
 }
 
-static void php_mssql_init_globals(zend_mssql_globals *mssql_globals)
+static PHP_GINIT_FUNCTION(mssql)
 {
        long compatability_mode;
 
@@ -288,8 +293,6 @@ static void php_mssql_init_globals(zend_mssql_globals *mssql_globals)
 
 PHP_MINIT_FUNCTION(mssql)
 {
-       ZEND_INIT_MODULE_GLOBALS(mssql, php_mssql_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
 
        le_statement = zend_register_list_destructors_ex(_free_mssql_statement, NULL, "mssql statement", module_number);
index 023a87e9fb6198c423afdda7ddb820cbae6243cc..ea90ee49e0673e5bc66b29b499f8fea5be733394 100644 (file)
@@ -116,6 +116,9 @@ static int le_result, le_link, le_plink;
        (mysql_field_count(mysql)>0)
 #endif
 
+ZEND_DECLARE_MODULE_GLOBALS(mysql)
+static PHP_GINIT_FUNCTION(mysql);
+
 typedef struct _php_mysql_conn {
        MYSQL conn;
        int active_result_id;
@@ -219,12 +222,14 @@ zend_module_entry mysql_module_entry = {
        PHP_RSHUTDOWN(mysql),
        PHP_MINFO(mysql),
        "1.0",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(mysql),
+       PHP_GINIT(mysql),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
-ZEND_DECLARE_MODULE_GLOBALS(mysql)
-
 #ifdef COMPILE_DL_MYSQL
 ZEND_GET_MODULE(mysql)
 #endif
@@ -353,9 +358,9 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_mysql_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_mysql_init_globals(zend_mysql_globals *mysql_globals)
+static PHP_GINIT_FUNCTION(mysql)
 {
        mysql_globals->num_persistent = 0;
        mysql_globals->default_socket = NULL;
@@ -374,8 +379,6 @@ static void php_mysql_init_globals(zend_mysql_globals *mysql_globals)
  */
 ZEND_MODULE_STARTUP_D(mysql)
 {
-       ZEND_INIT_MODULE_GLOBALS(mysql, php_mysql_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
        le_result = zend_register_list_destructors_ex(_free_mysql_result, NULL, "mysql result", module_number);
        le_link = zend_register_list_destructors_ex(_close_mysql_link, NULL, "mysql link", module_number);
index cad94021e8c7835297b163fab2eff79a3597aac0..cd7121046dc7b6a24b2904543e74b532bd6f341a 100644 (file)
@@ -35,6 +35,8 @@
 #define MYSQLI_USE_RESULT 1
 
 ZEND_DECLARE_MODULE_GLOBALS(mysqli)
+static PHP_GINIT_FUNCTION(mysqli);
+
 static zend_object_handlers mysqli_object_handlers;
 static HashTable classes;
 static HashTable mysqli_driver_properties;
@@ -367,7 +369,11 @@ zend_module_entry mysqli_module_entry = {
        PHP_RSHUTDOWN(mysqli),
        PHP_MINFO(mysqli),
        "0.1", /* Replace with version number for your extension */
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(mysqli),
+       PHP_GINIT(mysqli),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -389,9 +395,9 @@ PHP_INI_END()
 
 /* }}} */
 
-/* {{{ php_mysqli_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_mysqli_init_globals(zend_mysqli_globals *mysqli_globals)
+static PHP_GINIT_FUNCTION(mysqli)
 {
        mysqli_globals->num_links = 0;
        mysqli_globals->max_links = 0;
@@ -418,7 +424,6 @@ PHP_MINIT_FUNCTION(mysqli)
        zend_class_entry *ce,cex;
        zend_object_handlers *std_hnd = zend_get_std_object_handlers();
        
-       ZEND_INIT_MODULE_GLOBALS(mysqli, php_mysqli_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
        memcpy(&mysqli_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
index 30d287d46040cea25dce399dc1258c681b20b6cf..c5aad2ab1a1bfc0e0240ad38709bae7f99c3134f 100644 (file)
@@ -50,6 +50,7 @@
 #include "php_oci8_int.h"
 
 ZEND_DECLARE_MODULE_GLOBALS(oci)
+static PHP_GINIT_FUNCTION(oci);
 
 /* True globals, no need for thread safety */
 int le_connection;
@@ -371,7 +372,11 @@ zend_module_entry oci8_module_entry = {
        PHP_RSHUTDOWN(oci),   /* per-request shutdown function */
        PHP_MINFO(oci),       /* information function */
        "1.1",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(oci),  /* globals descriptor */
+       PHP_GINIT(oci),           /* globals ctor */
+       NULL,                     /* globals dtor */
+       NULL,                     /* post deactivate */
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -454,10 +459,10 @@ static void php_oci_cleanup_global_handles(TSRMLS_D)
        }
 } /* }}} */
 
-/* {{{ php_oci_init_globals()
+/* {{{ PHP_GINIT_FUNCTION
  Zerofill globals during module init
 */
-static void php_oci_init_globals(zend_oci_globals *oci_globals TSRMLS_DC)
+static PHP_GINIT_FUNCTION(oci)
 {
        memset(oci_globals, 0, sizeof(zend_oci_globals));
 }
@@ -486,7 +491,6 @@ PHP_MINIT_FUNCTION(oci)
        OCIInitialize(PHP_OCI_INIT_MODE, NULL, NULL, NULL, NULL);
 #endif
 
-       ZEND_INIT_MODULE_GLOBALS(oci, php_oci_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
        le_statement = zend_register_list_destructors_ex(php_oci_statement_list_dtor, NULL, "oci8 statement", module_number);
index 518d3bae76a35cf459bc824e2051143f4c4b6ed9..0b7cee68e448707f1de2d33dd5f02866cc8dfb51 100644 (file)
@@ -130,6 +130,9 @@ zend_function_entry odbc_functions[] = {
 };
 /* }}} */
 
+ZEND_DECLARE_MODULE_GLOBALS(odbc);
+static PHP_GINIT_FUNCTION(odbc);
+
 /* {{{ odbc_module_entry
  */
 zend_module_entry odbc_module_entry = {
@@ -142,16 +145,14 @@ zend_module_entry odbc_module_entry = {
        PHP_RSHUTDOWN(odbc), 
        PHP_MINFO(odbc), 
        "1.0",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(odbc),
+       PHP_GINIT(odbc),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
-#ifdef ZTS
-int odbc_globals_id;
-#else
-ZEND_API php_odbc_globals odbc_globals;
-#endif
-
 #ifdef COMPILE_DL_ODBC
 ZEND_GET_MODULE(odbc)
 # ifdef PHP_WIN32
@@ -383,32 +384,30 @@ static PHP_INI_DISP(display_lrl)
  */
 PHP_INI_BEGIN()
        STD_PHP_INI_BOOLEAN("odbc.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateLong,
-                       allow_persistent, php_odbc_globals, odbc_globals)
+                       allow_persistent, zend_odbc_globals, odbc_globals)
        STD_PHP_INI_ENTRY_EX("odbc.max_persistent",  "-1", PHP_INI_SYSTEM, OnUpdateLong,
-                       max_persistent, php_odbc_globals, odbc_globals, display_link_nums)
+                       max_persistent, zend_odbc_globals, odbc_globals, display_link_nums)
        STD_PHP_INI_ENTRY_EX("odbc.max_links", "-1", PHP_INI_SYSTEM, OnUpdateLong,
-                       max_links, php_odbc_globals, odbc_globals, display_link_nums)
+                       max_links, zend_odbc_globals, odbc_globals, display_link_nums)
        STD_PHP_INI_ENTRY("odbc.default_db", NULL, PHP_INI_ALL, OnUpdateString,
-                       defDB, php_odbc_globals, odbc_globals)
+                       defDB, zend_odbc_globals, odbc_globals)
        STD_PHP_INI_ENTRY("odbc.default_user", NULL, PHP_INI_ALL, OnUpdateString,
-                       defUser, php_odbc_globals, odbc_globals)
+                       defUser, zend_odbc_globals, odbc_globals)
        STD_PHP_INI_ENTRY_EX("odbc.default_pw", NULL, PHP_INI_ALL, OnUpdateString,
-                       defPW, php_odbc_globals, odbc_globals, display_defPW)
+                       defPW, zend_odbc_globals, odbc_globals, display_defPW)
        STD_PHP_INI_ENTRY_EX("odbc.defaultlrl", "4096", PHP_INI_ALL, OnUpdateLong,
-                       defaultlrl, php_odbc_globals, odbc_globals, display_lrl)
+                       defaultlrl, zend_odbc_globals, odbc_globals, display_lrl)
        STD_PHP_INI_ENTRY_EX("odbc.defaultbinmode", "1", PHP_INI_ALL, OnUpdateLong,
-                       defaultbinmode, php_odbc_globals, odbc_globals, display_binmode)
+                       defaultbinmode, zend_odbc_globals, odbc_globals, display_binmode)
        STD_PHP_INI_BOOLEAN("odbc.check_persistent", "1", PHP_INI_SYSTEM, OnUpdateLong,
-                       check_persistent, php_odbc_globals, odbc_globals)
+                       check_persistent, zend_odbc_globals, odbc_globals)
 PHP_INI_END()
 /* }}} */
 
-#ifdef ZTS
-static void php_odbc_init_globals(php_odbc_globals *odbc_globals_p TSRMLS_DC)
+static PHP_GINIT_FUNCTION(odbc)
 {
-       ODBCG(num_persistent) = 0;
+       odbc_globals->num_persistent = 0;
 }
-#endif
 
 /* {{{ PHP_MINIT_FUNCTION */
 PHP_MINIT_FUNCTION(odbc)
@@ -418,12 +417,6 @@ PHP_MINIT_FUNCTION(odbc)
        RETCODE rc;
 #endif
 
-#ifdef ZTS
-       ts_allocate_id(&odbc_globals_id, sizeof(php_odbc_globals), php_odbc_init_globals, NULL);
-#else
-       ODBCG(num_persistent) = 0;
-#endif
-
        REGISTER_INI_ENTRIES();
        le_result = zend_register_list_destructors_ex(_free_odbc_result, NULL, "odbc result", module_number);
        le_conn = zend_register_list_destructors_ex(_close_odbc_conn, NULL, "odbc link", module_number);
index d3ee4d5ea35236bd149414fa012e91b6baac1f30..bdb67ec5d2aea25e7287d47f64e8f63eac3e4510 100644 (file)
@@ -249,7 +249,7 @@ typedef struct odbc_result {
        odbc_connection *conn_ptr;
 } odbc_result;
 
-typedef struct {
+ZEND_BEGIN_MODULE_GLOBALS(odbc)
        char *defDB;
        char *defUser;
        char *defPW;
@@ -266,7 +266,7 @@ typedef struct {
     char lasterrormsg[SQL_MAX_MESSAGE_LENGTH];
        HashTable *resource_list;
        HashTable *resource_plist;
-} php_odbc_globals;
+ZEND_END_MODULE_GLOBALS(odbc)
 
 int odbc_add_result(HashTable *list, odbc_result *result);
 odbc_result *odbc_get_result(HashTable *list, int count);
@@ -284,7 +284,7 @@ void odbc_sql_error(ODBC_SQL_ERROR_PARAMS);
 #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY)
 
 #ifdef ZTS
-# define ODBCG(v) TSRMG(odbc_globals_id, php_odbc_globals *, v)
+# define ODBCG(v) TSRMG(odbc_globals_id, zend_odbc_globals *, v)
 #else
 # define ODBCG(v) (odbc_globals.v)
 extern ZEND_API php_odbc_globals odbc_globals;
index 8f18088948a72130ecc43bf779d17c87cf7465b2..c0e13c8380edc52367aeca7937cf489093657a31 100755 (executable)
@@ -42,6 +42,7 @@
 #endif
 
 ZEND_DECLARE_MODULE_GLOBALS(pcntl)
+static PHP_GINIT_FUNCTION(pcntl);
 
 zend_function_entry pcntl_functions[] = {
        PHP_FE(pcntl_fork,                      NULL)
@@ -75,7 +76,11 @@ zend_module_entry pcntl_module_entry = {
        PHP_RSHUTDOWN(pcntl),
        PHP_MINFO(pcntl),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(pcntl),
+       PHP_GINIT(pcntl),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_PCNTL
@@ -160,7 +165,7 @@ void php_register_signal_constants(INIT_FUNC_ARGS)
 #endif
 }
 
-static void php_pcntl_init_globals(zend_pcntl_globals *pcntl_globals)
+static PHP_GINIT_FUNCTION(pcntl)
 { 
        memset(pcntl_globals, 0, sizeof(*pcntl_globals));
 }
@@ -175,7 +180,6 @@ PHP_RINIT_FUNCTION(pcntl)
 PHP_MINIT_FUNCTION(pcntl)
 {
        php_register_signal_constants(INIT_FUNC_ARGS_PASSTHRU);
-       ZEND_INIT_MODULE_GLOBALS(pcntl, php_pcntl_init_globals, NULL);
        php_add_tick_function(pcntl_tick_handler);
 
        return SUCCESS;
index e4dee71d4ca632abcf45c9de82c9a0cdf2f9edf5..f07fc8c91d928a9eaf3ec790c6dcf5905db75b67 100644 (file)
@@ -97,7 +97,7 @@ static void php_free_pcre_cache(void *data)
 }
 
 
-static void php_pcre_init_globals(zend_pcre_globals *pcre_globals TSRMLS_DC)
+static PHP_GINIT_FUNCTION(pcre)
 {
        zend_hash_init(&pcre_globals->pcre_cache, 0, NULL, php_free_pcre_cache, 1);
        pcre_globals->backtrack_limit = 0;
@@ -105,7 +105,7 @@ static void php_pcre_init_globals(zend_pcre_globals *pcre_globals TSRMLS_DC)
        pcre_globals->error_code      = PHP_PCRE_NO_ERROR;
 }
 
-static void php_pcre_shutdown_globals(zend_pcre_globals *pcre_globals TSRMLS_DC)
+static PHP_GSHUTDOWN_FUNCTION(pcre)
 {
        zend_hash_destroy(&pcre_globals->pcre_cache);
 }
@@ -129,8 +129,6 @@ static PHP_MINFO_FUNCTION(pcre)
 /* {{{ PHP_MINIT_FUNCTION(pcre) */
 static PHP_MINIT_FUNCTION(pcre)
 {
-       ZEND_INIT_MODULE_GLOBALS(pcre, php_pcre_init_globals, php_pcre_shutdown_globals);
-
        REGISTER_INI_ENTRIES();
        
        REGISTER_LONG_CONSTANT("PREG_PATTERN_ORDER", PREG_PATTERN_ORDER, CONST_CS | CONST_PERSISTENT);
@@ -154,12 +152,6 @@ static PHP_MINIT_FUNCTION(pcre)
 /* {{{ PHP_MSHUTDOWN_FUNCTION(pcre) */
 static PHP_MSHUTDOWN_FUNCTION(pcre)
 {
-#ifdef ZTS
-       ts_free_id(pcre_globals_id);    
-#else
-       php_pcre_shutdown_globals(&pcre_globals TSRMLS_CC);
-#endif
-
        UNREGISTER_INI_ENTRIES();
 
        return SUCCESS;
@@ -1779,7 +1771,11 @@ zend_module_entry pcre_module_entry = {
        NULL,
        PHP_MINFO(pcre),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(pcre),
+       PHP_GINIT(pcre),
+       PHP_GSHUTDOWN(pcre),
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_PCRE
index ab4134715cb70eaa6382e1fe68d1474e51101f44..1e78952d0c013057ce1b9860bf5ec2e1202087d4 100755 (executable)
@@ -36,6 +36,7 @@
 static zend_class_entry *spl_ce_RuntimeException;
 
 ZEND_DECLARE_MODULE_GLOBALS(pdo)
+static PHP_GINIT_FUNCTION(pdo);
 
 /* True global resources - no need for thread safety here */
 
@@ -146,7 +147,11 @@ zend_module_entry pdo_module_entry = {
        NULL,
        PHP_MINFO(pdo),
        "1.0.4dev",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(pdo),
+       PHP_GINIT(pdo),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -163,8 +168,8 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_pdo_init_globals */
-static void php_pdo_init_globals(zend_pdo_globals *pdo_globals)
+/* {{{ PHP_GINIT_FUNCTION */
+static PHP_GINIT_FUNCTION(pdo)
 {
        pdo_globals->global_value = 0;
 }
@@ -321,7 +326,6 @@ PHP_MINIT_FUNCTION(pdo)
 
        spl_ce_RuntimeException = NULL;
 
-       ZEND_INIT_MODULE_GLOBALS(pdo, php_pdo_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
        if (FAILURE == pdo_sqlstate_init_error_table()) {
index eb2e886ce8eac064edac4b8f1b8fa68cc4f3dabc..68f3da8c7ee89543f6fe4eb02afe8c218f4074db 100644 (file)
@@ -33,6 +33,7 @@
 #include "zend_exceptions.h"
 
 ZEND_DECLARE_MODULE_GLOBALS(dblib)
+static PHP_GINIT_FUNCTION(dblib)
 
 zend_function_entry pdo_dblib_functions[] = {
        {NULL, NULL, NULL}
@@ -66,7 +67,11 @@ zend_module_entry pdo_dblib_module_entry = {
        PHP_RSHUTDOWN(pdo_dblib),
        PHP_MINFO(pdo_dblib),
        "1.0.1",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBASLS(dblib),
+       PHP_GINIT(dblib),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #if defined(COMPILE_DL_PDO_DBLIB) || defined(COMPILE_DL_PDO_MSSQL)
@@ -146,11 +151,10 @@ int msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate,
        return 0;
 }
 
-static int init_dblib_globals(zend_dblib_globals *g)
+static PHP_GINIT_FUNCTION(dblib)
 {
-       memset(g, 0, sizeof(*g));
-       g->err.sqlstate = g->sqlstate;
-       return SUCCESS;
+       memset(dblib_globals, 0, sizeof(*dblib_globals));
+       dblib_globals->err.sqlstate = dblib_globals->sqlstate;
 }
 
 PHP_RSHUTDOWN_FUNCTION(pdo_dblib)
@@ -180,8 +184,6 @@ PHP_MINIT_FUNCTION(pdo_dblib)
                return FAILURE;
        }
        
-       ZEND_INIT_MODULE_GLOBALS(dblib, init_dblib_globals, NULL);
-
        /* TODO: 
        
        dbsetifile()
index 3c3a71eb7a337ceddae093b5e43d5995c6aef7d4..313340bac500525b76bac4636ab11e961c059d8e 100644 (file)
@@ -81,6 +81,9 @@
 
 #define CHECK_DEFAULT_LINK(x) if ((x) == -1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "No PostgreSQL link opened yet"); }
 
+ZEND_DECLARE_MODULE_GLOBALS(pgsql)
+static PHP_GINIT_FUNCTION(pgsql);
+
 /* {{{ pgsql_functions[]
  */
 zend_function_entry pgsql_functions[] = {
@@ -248,7 +251,11 @@ zend_module_entry pgsql_module_entry = {
        PHP_RSHUTDOWN(pgsql),
        PHP_MINFO(pgsql),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(pgsql),
+       PHP_GINIT(pgsql),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -258,8 +265,6 @@ ZEND_GET_MODULE(pgsql)
 
 static int le_link, le_plink, le_result, le_lofp, le_string;
 
-ZEND_DECLARE_MODULE_GLOBALS(pgsql)
-
 /* {{{ _php_pgsql_trim_message */
 static char * _php_pgsql_trim_message(const char *message, int *len)
 {
@@ -446,9 +451,9 @@ STD_PHP_INI_BOOLEAN( "pgsql.log_notice",            "0",  PHP_INI_ALL,    OnUpda
 PHP_INI_END()
 /* }}} */
 
-/* {{{ php_pgsql_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_pgsql_init_globals(zend_pgsql_globals *pgsql_globals)
+static PHP_GINIT_FUNCTION(pgsql)
 {
        memset(pgsql_globals, 0, sizeof(zend_pgsql_globals));
        /* Initilize notice message hash at MINIT only */
@@ -460,8 +465,6 @@ static void php_pgsql_init_globals(zend_pgsql_globals *pgsql_globals)
  */
 PHP_MINIT_FUNCTION(pgsql)
 {
-       ZEND_INIT_MODULE_GLOBALS(pgsql, php_pgsql_init_globals, NULL);
-
        REGISTER_INI_ENTRIES();
        
        le_link = zend_register_list_destructors_ex(_close_pgsql_link, NULL, "pgsql link", module_number);
index edbc561ec1296c919b4de5b018e8839975bfa8b3..bb1935c4357ca98708ee284c2a2395e49ccef6b9 100644 (file)
@@ -49,6 +49,7 @@
 #endif
 
 ZEND_DECLARE_MODULE_GLOBALS(posix)
+static PHP_MINFO_FUNCTION(posix);
 
 /* {{{ posix_functions[]
  */
@@ -148,7 +149,7 @@ static PHP_MINFO_FUNCTION(posix)
 }
 /* }}} */
 
-static void php_posix_init_globals(zend_posix_globals *posix_globals TSRMLS_DC)
+static PHP_GINIT_FUNCTION(posix)
 {
        posix_globals->last_error = 0;
 }
@@ -157,7 +158,6 @@ static void php_posix_init_globals(zend_posix_globals *posix_globals TSRMLS_DC)
  */
 static PHP_MINIT_FUNCTION(posix)
 {
-       ZEND_INIT_MODULE_GLOBALS(posix, php_posix_init_globals, NULL);
        REGISTER_LONG_CONSTANT("POSIX_F_OK", F_OK, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("POSIX_X_OK", X_OK, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("POSIX_W_OK", W_OK, CONST_CS | CONST_PERSISTENT);
@@ -182,8 +182,6 @@ static PHP_MINIT_FUNCTION(posix)
 }
 /* }}} */
 
-static PHP_MINFO_FUNCTION(posix);
-
 /* {{{ posix_module_entry
  */
 zend_module_entry posix_module_entry = {
@@ -195,8 +193,12 @@ zend_module_entry posix_module_entry = {
        NULL,
        NULL, 
        PHP_MINFO(posix),
-    NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       NO_VERSION_YET,
+       PHP_MODULE_GLOBALS(posix),
+       PHP_GINIT(posix),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
index 68494bbb3924831b252377b5044ba0c8bd8511e1..cb9ad7d492a6fed5266c56449b4edc7e48eb1a47 100644 (file)
@@ -64,6 +64,7 @@ ZEND_END_MODULE_GLOBALS(recode)
 #endif
     
 ZEND_DECLARE_MODULE_GLOBALS(recode);
+static PHP_GINIT_FUNCTION(recode);
 
 /* {{{ module stuff */
 static zend_function_entry php_recode_functions[] = {
@@ -83,22 +84,24 @@ zend_module_entry recode_module_entry = {
        NULL, 
        PHP_MINFO(recode), 
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(recode),
+       PHP_GINIT(recode),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_RECODE
 ZEND_GET_MODULE(recode)
 #endif
 
-static void php_recode_init_globals (zend_recode_globals *rg)
+static PHP_GINIT_FUNCTION(recode)
 {
-       rg->outer = NULL;
+       recode_globals->outer = NULL;
 }
 
 PHP_MINIT_FUNCTION(recode)
 {
-       ZEND_INIT_MODULE_GLOBALS(recode, php_recode_init_globals, NULL);
-
        ReSG(outer) = recode_new_outer(false);
        if (ReSG(outer) == NULL) {
                return FAILURE;
index dc7939ea162d30ae8cfb2fce8e42d53027a001c4..9feb7784d0d1ecd43154b27b239e39748ac79863 100644 (file)
@@ -82,6 +82,7 @@ zend_function_entry session_functions[] = {
 /* }}} */
 
 PHPAPI ZEND_DECLARE_MODULE_GLOBALS(ps);
+static PHP_GINIT_FUNCTION(ps);
 
 static ps_module *_php_find_ps_module(char *name TSRMLS_DC);
 static const ps_serializer *_php_find_ps_serializer(char *name TSRMLS_DC);
@@ -257,7 +258,11 @@ zend_module_entry session_module_entry = {
        PHP_RINIT(session), PHP_RSHUTDOWN(session),
        PHP_MINFO(session),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(ps),
+       PHP_GINIT(ps),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_SESSION
@@ -1831,7 +1836,7 @@ PHP_RSHUTDOWN_FUNCTION(session)
 }
 /* }}} */
 
-static void php_minit_session_globals(php_ps_globals *ps_globals)
+static PHP_GINIT_FUNCTION(ps)
 {
        ps_globals->save_path = NULL;
        ps_globals->session_name = NULL;
@@ -1844,15 +1849,6 @@ static void php_minit_session_globals(php_ps_globals *ps_globals)
 
 PHP_MINIT_FUNCTION(session)
 {
-#ifdef ZTS
-       php_ps_globals *ps_globals;
-
-       ts_allocate_id(&ps_globals_id, sizeof(php_ps_globals), (ts_allocate_ctor) php_minit_session_globals, NULL);
-       ps_globals = ts_resource(ps_globals_id);
-#else 
-       php_minit_session_globals(&ps_globals);
-#endif
-
        zend_register_auto_global("_SESSION", sizeof("_SESSION")-1, NULL TSRMLS_CC);
 
        PS(module_number) = module_number; /* if we really need this var we need to init it in zts mode as well! */
index a5cf506f65050dcde045b78b6cc8de8476d0dccf..ae07e5373f6b6ac640be805e5a077c21dca7d40d 100644 (file)
@@ -77,7 +77,6 @@ static void php_extname_init_globals(zend_extname_globals *extname_globals)
 PHP_MINIT_FUNCTION(extname)
 {
        /* If you have INI entries, uncomment these lines 
-       ZEND_INIT_MODULE_GLOBALS(extname, php_extname_init_globals, NULL);
        REGISTER_INI_ENTRIES();
        */
        return SUCCESS;
index ab6a36677518bd4d9271a2965da5a2df9d29ddc1..49648907226f9ba3116d22b03b548f6e197e5ac7 100644 (file)
 #define SNMP_VALUE_OBJECT      2
 
 ZEND_DECLARE_MODULE_GLOBALS(snmp)
+static PHP_GINIT_FUNCTION(snmp);
 
 /* constant - can be shared among threads */
 static oid objid_mib[] = {1, 3, 6, 1, 2, 1};
@@ -164,7 +165,11 @@ zend_module_entry snmp_module_entry = {
        NULL,
        PHP_MINFO(snmp),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(snmp),
+       PHP_GINIT(snmp),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
@@ -174,9 +179,9 @@ ZEND_GET_MODULE(snmp)
 
 /* THREAD_LS snmp_module php_snmp_module; - may need one of these at some point */
 
-/* {{{ php_snmp_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void php_snmp_init_globals(zend_snmp_globals *snmp_globals)
+static PHP_GINIT_FUNCTION(snmp)
 {
        snmp_globals->valueretrieval = 0;
 }
@@ -193,8 +198,6 @@ PHP_MINIT_FUNCTION(snmp)
        netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PERSIST_STATE, 1);
 #endif
 
-       ZEND_INIT_MODULE_GLOBALS(snmp, php_snmp_init_globals, NULL);
-
        REGISTER_LONG_CONSTANT("SNMP_VALUE_LIBRARY", SNMP_VALUE_LIBRARY, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("SNMP_VALUE_PLAIN", SNMP_VALUE_PLAIN, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("SNMP_VALUE_OBJECT", SNMP_VALUE_OBJECT, CONST_CS | CONST_PERSISTENT);
index d706674baf8ee0fd0d703e9f23202543ebed35ef..893f5cefe5eea615fd813e15879d5cf8a61b0e7e 100644 (file)
@@ -57,6 +57,7 @@
 #endif
 
 ZEND_DECLARE_MODULE_GLOBALS(sockets)
+static PHP_GINIT_FUNCTION(sockets);
 
 #ifndef MSG_WAITALL
 #ifdef LINUX
@@ -159,7 +160,11 @@ zend_module_entry sockets_module_entry = {
        PHP_RSHUTDOWN(sockets),
        PHP_MINFO(sockets),
        NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(sockets),
+       PHP_GINIT(sockets),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 
@@ -432,7 +437,7 @@ static int php_set_inet_addr(struct sockaddr_in *sin, char *string, php_socket *
        return 1;
 }
 
-static void php_sockets_init_globals(zend_sockets_globals *sockets_globals TSRMLS_DC)
+static PHP_GINIT_FUNCTION(sockets)
 {
        sockets_globals->last_error = 0;
        sockets_globals->strerror_buf = NULL;
@@ -444,8 +449,6 @@ PHP_MINIT_FUNCTION(sockets)
 {
        struct protoent *pe;
 
-       ZEND_INIT_MODULE_GLOBALS(sockets, php_sockets_init_globals, NULL);
-
        le_socket = zend_register_list_destructors_ex(php_destroy_socket, NULL, le_socket_name, module_number);
 
        REGISTER_LONG_CONSTANT("AF_UNIX",               AF_UNIX,                CONST_CS | CONST_PERSISTENT);
index fce87de40c0bc22c1aaa82b1b18fb778f26fbbfe..07dff83fd96e3988fbb2bb983fd0862431f9e01f 100755 (executable)
@@ -50,9 +50,9 @@ zend_function_entry spl_functions_none[] = {
 };
 /* }}} */
 
-/* {{{ spl_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
-static void spl_init_globals(zend_spl_globals *spl_globals)
+static PHP_GINIT_FUNCTION(spl)
 {
        spl_globals->autoload_extensions = NULL;
        spl_globals->autoload_functions  = NULL;
@@ -645,8 +645,6 @@ zend_function_entry spl_functions[] = {
  */
 PHP_MINIT_FUNCTION(spl)
 {
-       ZEND_INIT_MODULE_GLOBALS(spl, spl_init_globals, NULL);
-
        PHP_MINIT(spl_iterators)(INIT_FUNC_ARGS_PASSTHRU);
        PHP_MINIT(spl_array)(INIT_FUNC_ARGS_PASSTHRU);
        PHP_MINIT(spl_directory)(INIT_FUNC_ARGS_PASSTHRU);
@@ -704,7 +702,11 @@ zend_module_entry spl_module_entry = {
        PHP_RSHUTDOWN(spl),
        PHP_MINFO(spl),
        "0.2",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(spl),
+       PHP_GINIT(spl),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
index 73a57c91ca669c09b2695b7a9785732f89ae6ea6..c499fa530cddfadb138a5ef55cbc2d9638f3608d 100644 (file)
@@ -62,6 +62,7 @@ extern pdo_driver_t pdo_sqlite2_driver;
 #endif
 
 ZEND_DECLARE_MODULE_GLOBALS(sqlite)
+static PHP_GINIT_FUNCTION(sqlite);
 
 #if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
 extern ps_module ps_mod_sqlite;
@@ -300,7 +301,15 @@ zend_module_entry sqlite_module_entry = {
 #if ZEND_MODULE_API_NO >= 20010901
        PHP_SQLITE_MODULE_VERSION,
 #endif
+#if ZEND_MODULE_API_NO >= 20060613
+       PHP_MODULE_GLOBALS(sqlite),
+       PHP_GINIT(sqlite),
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
+#else
        STANDARD_MODULE_PROPERTIES
+#endif
 };
 
 
@@ -1016,10 +1025,9 @@ zend_object_iterator *sqlite_get_iterator(zend_class_entry *ce, zval *object, in
 }
 /* }}} */
 
-static int init_sqlite_globals(zend_sqlite_globals *g)
+static PHP_GINIT_FUNCTION(sqlite)
 {
-       g->assoc_case = 0;
-       return SUCCESS;
+       sqlite_globals->assoc_case = 0;
 }
 
 PHP_MINIT_FUNCTION(sqlite)
@@ -1051,8 +1059,6 @@ PHP_MINIT_FUNCTION(sqlite)
        sqlite_ce_query->get_iterator = sqlite_get_iterator;
        sqlite_ce_query->iterator_funcs.funcs = &sqlite_query_iterator_funcs;
 
-       ZEND_INIT_MODULE_GLOBALS(sqlite, init_sqlite_globals, NULL);
-
        REGISTER_INI_ENTRIES();
 
 #if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
index f74cfbeae5cb6b5cd55e3595069504927c6d9960..36afda4221c0ec21fc4105c95bc3d682f8e295cf 100644 (file)
@@ -37,6 +37,10 @@ static int le_link, le_plink, le_result;
 
 #if HAVE_SYBASE_CT
 
+ZEND_DECLARE_MODULE_GLOBALS(sybase)
+static PHP_GINIT_FUNCTION(sybase);
+static PHP_GSHUTDOWN_FUNCTION(sybase);
+
 zend_function_entry sybase_functions[] = {
        PHP_FE(sybase_connect, NULL)
        PHP_FE(sybase_pconnect, NULL)
@@ -93,10 +97,21 @@ zend_function_entry sybase_functions[] = {
 
 zend_module_entry sybase_module_entry = {
        STANDARD_MODULE_HEADER,
-       "sybase_ct", sybase_functions, PHP_MINIT(sybase), PHP_MSHUTDOWN(sybase), PHP_RINIT(sybase), PHP_RSHUTDOWN(sybase), PHP_MINFO(sybase), NO_VERSION_YET, STANDARD_MODULE_PROPERTIES
+       "sybase_ct",
+       sybase_functions,
+       PHP_MINIT(sybase),
+       PHP_MSHUTDOWN(sybase),
+       PHP_RINIT(sybase),
+       PHP_RSHUTDOWN(sybase),
+       PHP_MINFO(sybase),
+       NO_VERSION_YET,
+       PHP_MODULE_GLOBALS(sybase),
+       PHP_GINIT(sybase),
+       PHP_GSHUTDOWN(sybase),
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
-ZEND_DECLARE_MODULE_GLOBALS(sybase)
 /* static CS_CONTEXT *context; */
 
 #ifdef COMPILE_DL_SYBASE_CT
@@ -356,7 +371,7 @@ PHP_INI_BEGIN()
 PHP_INI_END()
 
 
-static void php_sybase_init_globals(zend_sybase_globals *sybase_globals)
+static PHP_GINIT_FUNCTION(sybase)
 {
        long opt;
        TSRMLS_FETCH();
@@ -407,7 +422,7 @@ static void php_sybase_init_globals(zend_sybase_globals *sybase_globals)
 }
 
 
-static void php_sybase_destroy_globals(zend_sybase_globals *sybase_globals)
+static PHP_GSHUTDOWN_FUNCTION(sybase)
 {
        ct_exit(sybase_globals->context, CS_UNUSED);
        cs_ctx_drop(sybase_globals->context);
@@ -415,8 +430,6 @@ static void php_sybase_destroy_globals(zend_sybase_globals *sybase_globals)
 
 PHP_MINIT_FUNCTION(sybase)
 {
-       ZEND_INIT_MODULE_GLOBALS(sybase, php_sybase_init_globals, php_sybase_destroy_globals);
-
        REGISTER_INI_ENTRIES();
 
        le_link = zend_register_list_destructors_ex(_close_sybase_link, NULL, "sybase-ct link", module_number);
@@ -442,11 +455,6 @@ PHP_RINIT_FUNCTION(sybase)
 PHP_MSHUTDOWN_FUNCTION(sybase)
 {
        UNREGISTER_INI_ENTRIES();
-#ifdef ZTS
-       ts_free_id(sybase_globals_id);
-#else
-       php_sybase_destroy_globals(&sybase_globals TSRMLS_CC);
-#endif
 #if 0
        ct_exit(context, CS_UNUSED);
        cs_ctx_drop(context);
index 31d09b4a8256e979e09f81450d684f9efd0e30c1..40f4ff567b508e9a5a30cfbbef6a58fdd76aea15 100644 (file)
@@ -331,7 +331,11 @@ zend_module_entry tidy_module_entry = {
        NULL,
        PHP_MINFO(tidy),
        PHP_TIDY_MODULE_VERSION,
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(tidy),
+       NULL,
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 #ifdef COMPILE_DL_TIDY
@@ -957,20 +961,8 @@ static int php_tidy_parse_string(PHPTidyObj *obj, char *string, int len, char *e
        return SUCCESS;
 }
 
-static void tidy_globals_ctor(void *global TSRMLS_DC)
-{
-
-}
-
-static void tidy_globals_dtor(void *global TSRMLS_DC)
-{
-
-}
-
 PHP_MINIT_FUNCTION(tidy)
 {
-       ZEND_INIT_MODULE_GLOBALS(tidy, tidy_globals_ctor, tidy_globals_dtor);
-
        REGISTER_INI_ENTRIES();
        REGISTER_TIDY_CLASS(tidy, doc,  NULL, 0);
        REGISTER_TIDY_CLASS(tidyNode, node,     NULL, ZEND_ACC_FINAL_CLASS);
@@ -1002,11 +994,6 @@ PHP_RINIT_FUNCTION(tidy)
 
 PHP_MSHUTDOWN_FUNCTION(tidy)
 {
-#ifdef ZTS
-       ts_free_id(tidy_globals_id);
-#else
-       tidy_globals_dtor(&tidy_globals TSRMLS_CC);
-#endif
        UNREGISTER_INI_ENTRIES();
        return SUCCESS;
 }
index b5103142f53ac74a26b79adec5125b002ab223dd..8a6b94cdd5613065ae4aa6fc89945a86cb76741d 100644 (file)
@@ -144,10 +144,10 @@ PHP_INI_END()
 */
 /* }}} */
 
-/* {{{ php_tokenizer_init_globals
+/* {{{ PHP_GINIT_FUNCTION
  */
 /* Uncomment this function if you have INI entries
-static void php_tokenizer_init_globals(zend_tokenizer_globals *tokenizer_globals)
+static PHP_GINIT_FUNCTION(tokenizer)
 {
        tokenizer_globals->global_value = 0;
        tokenizer_globals->global_string = NULL;
@@ -160,7 +160,6 @@ static void php_tokenizer_init_globals(zend_tokenizer_globals *tokenizer_globals
 PHP_MINIT_FUNCTION(tokenizer)
 {
        /* If you have INI entries, uncomment these lines 
-       ZEND_INIT_MODULE_GLOBALS(tokenizer, php_tokenizer_init_globals, NULL);
        REGISTER_INI_ENTRIES();
        */
 
index a46a20d46584d04c6c7e7b45abe312a4f369e789..aa778cf8259aa0d733286b848f05ea275e1d37d2 100644 (file)
@@ -45,9 +45,9 @@ extern zend_module_entry xml_module_entry;
 #error "UTF-16 Unicode support not implemented!"
 #endif
 
-typedef struct {
+ZEND_BEGIN_MODULE_GLOBALS(xml)
        XML_Char *default_encoding;
-} php_xml_globals;
+ZEND_END_MODULE_GLOBALS(xml)
 
 typedef struct {
        int index;
@@ -147,7 +147,7 @@ PHPAPI char *xml_utf8_decode(const XML_Char *, int, int *, const XML_Char *);
 #define phpext_xml_ptr xml_module_ptr
 
 #ifdef ZTS
-#define XML(v) TSRMG(xml_globals_id, php_xml_globals *, v)
+#define XML(v) TSRMG(xml_globals_id, zend_xml_globals *, v)
 #else
 #define XML(v) (xml_globals.v)
 #endif
index 7279b04f7353f3aecc1cbfb30530112d1ab5c57b..8b26f5fe120cce50432cf0385af1af6a051f0e39 100644 (file)
  * - Weird things happen with <![CDATA[]]> sections.
  */
 
-#ifdef ZTS
-int xml_globals_id;
-#else
-PHP_XML_API php_xml_globals xml_globals;
-#endif
+ZEND_DECLARE_MODULE_GLOBALS(xml)
 
 /* {{{ dynamically loadable module stuff */
 #ifdef COMPILE_DL_XML
@@ -75,6 +71,7 @@ ZEND_GET_MODULE(xml)
 /* {{{ function prototypes */
 PHP_MINIT_FUNCTION(xml);
 PHP_MINFO_FUNCTION(xml);
+static PHP_GINIT_FUNCTION(xml);
 
 static void xml_parser_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC);
 static void xml_set_handler(zval **, zval **);
@@ -161,7 +158,11 @@ zend_module_entry xml_module_entry = {
        NULL,                 /* per-request shutdown function */
        PHP_MINFO(xml),       /* information function */
     NO_VERSION_YET,
-       STANDARD_MODULE_PROPERTIES
+    PHP_MODULE_GLOBALS(xml), /* globals descriptor */
+    PHP_GINIT(xml),          /* globals ctor */
+    NULL,                    /* globals dtor */
+    NULL,                    /* post deactivate */
+       STANDARD_MODULE_PROPERTIES_EX
 };
 
 /* All the encoding functions are set to NULL right now, since all
@@ -182,12 +183,10 @@ static int le_xml_parser;
 /* }}} */
 
 /* {{{ startup, shutdown and info functions */
-#ifdef ZTS
-static void php_xml_init_globals(php_xml_globals *xml_globals_p TSRMLS_DC)
+static PHP_GINIT_FUNCTION(xml)
 {
-       XML(default_encoding) = "UTF-8";
+       xml_globals->default_encoding = "UTF-8";
 }
-#endif
 
 static void *php_xml_malloc_wrapper(size_t sz)
 {
@@ -210,12 +209,6 @@ PHP_MINIT_FUNCTION(xml)
 {
        le_xml_parser = zend_register_list_destructors_ex(xml_parser_dtor, NULL, "xml", module_number);
 
-#ifdef ZTS
-       ts_allocate_id(&xml_globals_id, sizeof(php_xml_globals), (ts_allocate_ctor) php_xml_init_globals, NULL);
-#else
-       XML(default_encoding) = "UTF-8";
-#endif
-
        REGISTER_LONG_CONSTANT("XML_ERROR_NONE", XML_ERROR_NONE, CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("XML_ERROR_NO_MEMORY", XML_ERROR_NO_MEMORY, CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("XML_ERROR_SYNTAX", XML_ERROR_SYNTAX, CONST_CS|CONST_PERSISTENT);
index 11c20e091407f14a8e8c119d2f17fe01fa3ebf08..d50dcf148be1c5e8ef8d228db3f20863e62080bd 100644 (file)
@@ -113,6 +113,8 @@ zend_function_entry php_zlib_functions[] = {
 };
 /* }}} */
 
+ZEND_DECLARE_MODULE_GLOBALS(zlib)
+
 /* {{{ php_zlib_module_entry
  */
 zend_module_entry php_zlib_module_entry = {
@@ -125,12 +127,14 @@ zend_module_entry php_zlib_module_entry = {
        NULL,
        PHP_MINFO(zlib),
        "1.1",
-       STANDARD_MODULE_PROPERTIES
+       PHP_MODULE_GLOBALS(zlib),
+       NULL,
+       NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES_EX
 };
 /* }}} */
 
-ZEND_DECLARE_MODULE_GLOBALS(zlib)
-
 #ifdef COMPILE_DL_ZLIB
 ZEND_GET_MODULE(php_zlib)
 #endif
@@ -199,22 +203,10 @@ PHP_INI_BEGIN()
        STD_PHP_INI_ENTRY("zlib.output_handler",             "", PHP_INI_ALL, OnUpdate_zlib_output_handler,           output_handler,           zend_zlib_globals, zlib_globals)
 PHP_INI_END()
 
-#ifdef ZTS
-/* {{{ php_zlib_init_globals
- */
-static void php_zlib_init_globals(zend_zlib_globals *zlib_globals_p TSRMLS_DC)
-{
-}
-/* }}} */
-#endif
-
 /* {{{ PHP_MINIT_FUNCTION
  */
 PHP_MINIT_FUNCTION(zlib)
 {
-#ifdef ZTS
-       ts_allocate_id(&zlib_globals_id, sizeof(zend_zlib_globals), (ts_allocate_ctor) php_zlib_init_globals, NULL);
-#endif
        php_register_url_stream_wrapper("compress.zlib", &php_stream_gzip_wrapper TSRMLS_CC);
        php_stream_filter_register_factory("zlib.*", &php_zlib_filter_factory TSRMLS_CC);