summaryrefslogtreecommitdiff
path: root/Zend/zend_float.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2010-07-09 09:02:14 +0000
committerDmitry Stogov <dmitry@php.net>2010-07-09 09:02:14 +0000
commit5438a9d23c4bae10a1f38967f84f0f0420971676 (patch)
tree741bd383af3a54ae55067f383e8357221cf7211a /Zend/zend_float.c
parentbc1f1d25fa30805a8f4208829cad241880a486ab (diff)
downloadphp-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.c20
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;
}
/* }}} */