From: Zeev Suraski Date: Tue, 1 Feb 2000 22:04:52 +0000 (+0000) Subject: Improve dependencies X-Git-Tag: BEFORE_SAPIFICATION_FEB_10_2000~118 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=485412ecb10429dbe987f2e9e01c126c18db54e0;p=php Improve dependencies --- diff --git a/Zend/ZendTS.dsp b/Zend/ZendTS.dsp index 9582f361e6..549f01e432 100644 --- a/Zend/ZendTS.dsp +++ b/Zend/ZendTS.dsp @@ -251,6 +251,10 @@ SOURCE=.\zend_execute.h # End Source File # Begin Source File +SOURCE=.\zend_execute_locks.h +# End Source File +# Begin Source File + SOURCE=.\zend_extensions.h # End Source File # Begin Source File diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 1fb22e3765..3f304892b0 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -580,25 +580,6 @@ int zendlex(znode *zendlval CLS_DC); #define PZVAL_IS_REF(z) ((z)->is_ref) -#define PZVAL_LOCK(z) ((z)->refcount++) -#define PZVAL_UNLOCK(z) { ((z)->refcount--); \ - if (!(z)->refcount) { \ - (z)->refcount = 1; \ - (z)->is_ref = 0; \ - EG(garbage)[EG(garbage_ptr)++] = (z); \ - if (EG(garbage_ptr) == 4) { \ - zval_ptr_dtor(&EG(garbage)[0]); \ - zval_ptr_dtor(&EG(garbage)[1]); \ - EG(garbage)[0] = EG(garbage)[2]; \ - EG(garbage)[1] = EG(garbage)[3]; \ - EG(garbage_ptr) -= 2; \ - } \ - } \ - } - -#define SELECTIVE_PZVAL_LOCK(pzv, pzn) if (!((pzn)->u.EA.type & EXT_TYPE_UNUSED)) { PZVAL_LOCK(pzv); } - - /* Lost In Stupid Parentheses */ #define ARG_SHOULD_BE_SENT_BY_REF(offset, conduct_check, arg_types) \ ( \ diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 24bbe10e8e..2407e4768f 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -31,6 +31,7 @@ #include "zend_constants.h" #include "zend_extensions.h" #include "zend_fast_cache.h" +#include "zend_execute_locks.h" #if defined(HAVE_ALLOCA) && defined(HAVE_ALLOCA_H) # include diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 52f0e17f18..ba97c18410 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -30,6 +30,7 @@ #include "zend_operators.h" #include "zend_constants.h" #include "zend_extensions.h" +#include "zend_execute_locks.h" ZEND_API void (*zend_execute)(zend_op_array *op_array ELS_DC); diff --git a/Zend/zend_execute_locks.h b/Zend/zend_execute_locks.h new file mode 100644 index 0000000000..b24ec642e9 --- /dev/null +++ b/Zend/zend_execute_locks.h @@ -0,0 +1,22 @@ +#ifndef _ZEND_EXECUTE_LOCKS_H +#define _ZEND_EXECUTE_LOCKS_H + +#define PZVAL_LOCK(z) ((z)->refcount++) +#define PZVAL_UNLOCK(z) { ((z)->refcount--); \ + if (!(z)->refcount) { \ + (z)->refcount = 1; \ + (z)->is_ref = 0; \ + EG(garbage)[EG(garbage_ptr)++] = (z); \ + if (EG(garbage_ptr) == 4) { \ + zval_ptr_dtor(&EG(garbage)[0]); \ + zval_ptr_dtor(&EG(garbage)[1]); \ + EG(garbage)[0] = EG(garbage)[2]; \ + EG(garbage)[1] = EG(garbage)[3]; \ + EG(garbage_ptr) -= 2; \ + } \ + } \ + } + +#define SELECTIVE_PZVAL_LOCK(pzv, pzn) if (!((pzn)->u.EA.type & EXT_TYPE_UNUSED)) { PZVAL_LOCK(pzv); } + +#endif /* _ZEND_EXECUTE_LOCKS_H */