]> granicus.if.org Git - php/commitdiff
integrate static tsrm_ls cache for ext/odbc
authorAnatol Belski <ab@php.net>
Wed, 25 Mar 2015 14:11:21 +0000 (15:11 +0100)
committerAnatol Belski <ab@php.net>
Wed, 25 Mar 2015 14:32:36 +0000 (15:32 +0100)
ext/odbc/config.m4
ext/odbc/config.w32
ext/odbc/php_odbc.c
ext/odbc/php_odbc_includes.h

index 607e8fa404f25c8d3cbbe3103d141ccf69b8eca2..5aa7efa376dfe9d759901c39a69c5cd22e57292c 100644 (file)
@@ -550,7 +550,7 @@ if test -n "$ODBC_TYPE"; then
   PHP_SUBST_OLD(ODBC_LFLAGS)
   PHP_SUBST_OLD(ODBC_TYPE)
 
-  PHP_NEW_EXTENSION(odbc, php_odbc.c, $ext_shared,, $ODBC_INCLUDE)
+  PHP_NEW_EXTENSION(odbc, php_odbc.c, $ext_shared,, [$ODBC_INCLUDE -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1])
 else
   AC_MSG_CHECKING([for any ODBC driver support])
   AC_MSG_RESULT(no)
index 9e969852c28759297038406e999ba3e2b32ca9d5..8a284e325894e59ff1320b8427188659af4e5810 100644 (file)
@@ -8,7 +8,7 @@ if (PHP_ODBC == "yes") {
        if (CHECK_LIB("odbc32.lib", "odbc") && CHECK_LIB("odbccp32.lib", "odbc")
        && CHECK_HEADER_ADD_INCLUDE("sql.h", "CFLAGS_ODBC")
        && CHECK_HEADER_ADD_INCLUDE("sqlext.h", "CFLAGS_ODBC")) {
-               EXTENSION("odbc", "php_odbc.c");
+               EXTENSION("odbc", "php_odbc.c", PHP_ODBC_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
                AC_DEFINE("HAVE_UODBC", 1, "ODBC support");
                if ("no" == PHP_ODBCVER) {
                        AC_DEFINE("ODBCVER", "0x0300", "The highest supported ODBC version", false);
index 1f14ee23c7c9b3215d1b4197e30c326a84d805ac..6a2db5581c79e7e28eecfec12f5a58deef8685ca 100644 (file)
@@ -411,6 +411,9 @@ zend_module_entry odbc_module_entry = {
 /* }}} */
 
 #ifdef COMPILE_DL_ODBC
+#ifdef ZTS
+ZEND_TSRMLS_CACHE_DEFINE();
+#endif
 ZEND_GET_MODULE(odbc)
 #endif
 
@@ -695,6 +698,9 @@ PHP_INI_END()
 
 static PHP_GINIT_FUNCTION(odbc)
 {
+#if defined(COMPILE_DL_ODBC) && defined(ZTS)
+       ZEND_TSRMLS_CACHE_UPDATE();
+#endif
        odbc_globals->num_persistent = 0;
 }
 
index 44bc7a344435caef1f47a03c1f7856447cd75262..e1ddcec7650a5d0c78b9d41f4caaa9d5f3b08a7e 100644 (file)
@@ -287,7 +287,10 @@ 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, zend_odbc_globals *, v)
+# define ODBCG(v) ZEND_TSRMG(odbc_globals_id, zend_odbc_globals *, v)
+# ifdef COMPILE_DL_ODBC
+ZEND_TSRMLS_CACHE_EXTERN();
+# endif
 #else
 # define ODBCG(v) (odbc_globals.v)
 extern ZEND_API zend_odbc_globals odbc_globals;