diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 93d9385d1e6..de8f55ad2b0 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -959,10 +959,6 @@ static void basic_globals_ctor(php_basic_globals *basic_globals_p TSRMLS_DC) memset(&BG(url_adapt_state), 0, sizeof(BG(url_adapt_state))); memset(&BG(url_adapt_state_ex), 0, sizeof(BG(url_adapt_state_ex))); -#ifdef PHP_WIN32 - CoInitialize(NULL); -#endif - BG(incomplete_class) = php_create_incomplete_class(TSRMLS_C); } @@ -973,9 +969,6 @@ static void basic_globals_dtor(php_basic_globals *basic_globals_p TSRMLS_DC) if (BG(sm_allowed_env_vars)) { free(BG(sm_allowed_env_vars)); } -#ifdef PHP_WIN32 - CoUninitialize(); -#endif } @@ -1102,6 +1095,10 @@ PHP_MSHUTDOWN_FUNCTION(basic) PHP_RINIT_FUNCTION(basic) { +#ifdef PHP_WIN32 + CoInitialize(NULL); +#endif + memset(BG(strtok_table), 0, 256); BG(strtok_string) = NULL; BG(strtok_zval) = NULL; @@ -1184,6 +1181,10 @@ PHP_RSHUTDOWN_FUNCTION(basic) } #endif +#ifdef PHP_WIN32 + CoUninitialize(); +#endif + return SUCCESS; }