diff options
author | Dmitry Stogov <dmitry@php.net> | 2010-07-09 09:02:14 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2010-07-09 09:02:14 +0000 |
commit | 5438a9d23c4bae10a1f38967f84f0f0420971676 (patch) | |
tree | 741bd383af3a54ae55067f383e8357221cf7211a /Zend/zend_float.c | |
parent | bc1f1d25fa30805a8f4208829cad241880a486ab (diff) | |
download | php-git-5438a9d23c4bae10a1f38967f84f0f0420971676.tar.gz |
Eliminated useless allocation of FPU control word on each request startup
Diffstat (limited to 'Zend/zend_float.c')
-rw-r--r-- | Zend/zend_float.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/Zend/zend_float.c b/Zend/zend_float.c index 5c38ba9977..ea13ed7988 100644 --- a/Zend/zend_float.c +++ b/Zend/zend_float.c @@ -27,16 +27,13 @@ ZEND_API void zend_init_fpu(TSRMLS_D) /* {{{ */ #if XPFPA_HAVE_CW XPFPA_DECLARE - if (!EG(saved_fpu_cw)) { - EG(saved_fpu_cw) = emalloc(sizeof(XPFPA_CW_DATATYPE)); + if (!EG(saved_fpu_cw_ptr)) { + EG(saved_fpu_cw_ptr) = (void*)&EG(saved_fpu_cw); } - XPFPA_STORE_CW(EG(saved_fpu_cw)); + XPFPA_STORE_CW(EG(saved_fpu_cw_ptr)); XPFPA_SWITCH_DOUBLE(); #else - if (EG(saved_fpu_cw)) { - efree(EG(saved_fpu_cw)); - } - EG(saved_fpu_cw) = NULL; + EG(saved_fpu_cw_ptr) = NULL; #endif } /* }}} */ @@ -44,14 +41,11 @@ ZEND_API void zend_init_fpu(TSRMLS_D) /* {{{ */ ZEND_API void zend_shutdown_fpu(TSRMLS_D) /* {{{ */ { #if XPFPA_HAVE_CW - if (EG(saved_fpu_cw)) { - XPFPA_RESTORE_CW(EG(saved_fpu_cw)); + if (EG(saved_fpu_cw_ptr)) { + XPFPA_RESTORE_CW(EG(saved_fpu_cw_ptr)); } #endif - if (EG(saved_fpu_cw)) { - efree(EG(saved_fpu_cw)); - EG(saved_fpu_cw) = NULL; - } + EG(saved_fpu_cw_ptr) = NULL; } /* }}} */ |