diff options
| author | Zeev Suraski <zeev@php.net> | 2000-02-01 22:04:52 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 2000-02-01 22:04:52 +0000 |
| commit | 485412ecb10429dbe987f2e9e01c126c18db54e0 (patch) | |
| tree | 69f88577e4e8efcb420b453cce469f72f06eddae /Zend/zend_execute_locks.h | |
| parent | a753430fb980a8fa156af9fad61a7daf1618b2ec (diff) | |
| download | php-git-485412ecb10429dbe987f2e9e01c126c18db54e0.tar.gz | |
Improve dependencies
Diffstat (limited to 'Zend/zend_execute_locks.h')
| -rw-r--r-- | Zend/zend_execute_locks.h | 22 |
1 files changed, 22 insertions, 0 deletions
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 */ |
