diff options
author | Dmitry Stogov <dmitry@php.net> | 2006-05-19 06:09:15 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2006-05-19 06:09:15 +0000 |
commit | 14f6b9149dd8cb1ef7f689afd7d5324746b60d04 (patch) | |
tree | 07dd02578b9981191e4965057eac0552e3f21397 /Zend/zend.h | |
parent | 95875d996661369faa2647846c8168fed625a961 (diff) | |
download | php-git-14f6b9149dd8cb1ef7f689afd7d5324746b60d04.tar.gz |
Optimized zend_try/zend_catch macroses (eliminated memcpy())
Diffstat (limited to 'Zend/zend.h')
-rw-r--r-- | Zend/zend.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Zend/zend.h b/Zend/zend.h index b9557af362..7d4ea5b52f 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -448,19 +448,19 @@ END_EXTERN_C() #define zend_try \ { \ - jmp_buf orig_bailout; \ - zend_bool orig_bailout_set=EG(bailout_set); \ + jmp_buf *orig_bailout = EG(bailout); \ + jmp_buf bailout; \ \ - EG(bailout_set) = 1; \ - memcpy(&orig_bailout, &EG(bailout), sizeof(jmp_buf)); \ - if (setjmp(EG(bailout))==0) + EG(bailout) = &bailout; \ + if (setjmp(bailout)==0) { #define zend_catch \ - else + } else { \ + EG(bailout) = orig_bailout; #define zend_end_try() \ - memcpy(&EG(bailout), &orig_bailout, sizeof(jmp_buf)); \ - EG(bailout_set) = orig_bailout_set; \ + } \ + EG(bailout) = orig_bailout; \ } -#define zend_first_try EG(bailout_set)=0; zend_try +#define zend_first_try EG(bailout)=NULL; zend_try BEGIN_EXTERN_C() ZEND_API char *get_zend_version(void); |