From: Anatol Belski Date: Wed, 25 Mar 2015 14:11:21 +0000 (+0100) Subject: integrate static tsrm_ls cache for ext/odbc X-Git-Tag: PRE_PHP7_NSAPI_REMOVAL~493^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f84e29506be4e5a708cb609729aa8a35cb7544b;p=php integrate static tsrm_ls cache for ext/odbc --- diff --git a/ext/odbc/config.m4 b/ext/odbc/config.m4 index 607e8fa404..5aa7efa376 100644 --- a/ext/odbc/config.m4 +++ b/ext/odbc/config.m4 @@ -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) diff --git a/ext/odbc/config.w32 b/ext/odbc/config.w32 index 9e969852c2..8a284e3258 100644 --- a/ext/odbc/config.w32 +++ b/ext/odbc/config.w32 @@ -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); diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 1f14ee23c7..6a2db5581c 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -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; } diff --git a/ext/odbc/php_odbc_includes.h b/ext/odbc/php_odbc_includes.h index 44bc7a3444..e1ddcec765 100644 --- a/ext/odbc/php_odbc_includes.h +++ b/ext/odbc/php_odbc_includes.h @@ -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;