diff options
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; } /* }}} */ |