diff options
| author | Yiduo (David) Wang <davidw@php.net> | 2007-10-07 05:22:07 +0000 |
|---|---|---|
| committer | Yiduo (David) Wang <davidw@php.net> | 2007-10-07 05:22:07 +0000 |
| commit | 4b4d634cb956de1efc13c8ed9b243fe1a85f783b (patch) | |
| tree | eaa8d691de244aff3ee68fd3c23f769f02fa4446 /Zend/zend_API.h | |
| parent | ca4c55ad3a673257925bd9b458683c4f0e60e755 (diff) | |
| download | php-git-4b4d634cb956de1efc13c8ed9b243fe1a85f783b.tar.gz | |
MFH: Added macros for managing zval refcounts and is_ref statuses
Diffstat (limited to 'Zend/zend_API.h')
| -rw-r--r-- | Zend/zend_API.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Zend/zend_API.h b/Zend/zend_API.h index f44b6fdf47..c0db612c10 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -485,8 +485,8 @@ END_EXTERN_C() #define ZVAL_ZVAL(z, zv, copy, dtor) { \ int is_ref, refcount; \ - is_ref = (z)->is_ref; \ - refcount = (z)->refcount; \ + is_ref = Z_ISREF_P(z); \ + refcount = Z_REFCOUNT_P(z); \ *(z) = *(zv); \ if (copy) { \ zval_copy_ctor(z); \ @@ -497,8 +497,8 @@ END_EXTERN_C() } \ zval_ptr_dtor(&zv); \ } \ - (z)->is_ref = is_ref; \ - (z)->refcount = refcount; \ + Z_SET_ISREF_TO_P(z, is_ref); \ + Z_SET_REFCOUNT_P(z, refcount); \ } #define ZVAL_FALSE(z) ZVAL_BOOL(z, 0) @@ -578,19 +578,19 @@ END_EXTERN_C() \ if (zend_hash_find(symtable, (name), (name_length), (void **) &orig_var)==SUCCESS \ && PZVAL_IS_REF(*orig_var)) { \ - (var)->refcount = (*orig_var)->refcount; \ - (var)->is_ref = 1; \ + Z_SET_REFCOUNT_P(var, Z_REFCOUNT_PP(orig_var)); \ + Z_SET_ISREF_P(var); \ \ if (_refcount) { \ - (var)->refcount += _refcount-1; \ + Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(var) + _refcount-1); \ } \ zval_dtor(*orig_var); \ **orig_var = *(var); \ FREE_ZVAL(var); \ } else { \ - (var)->is_ref = _is_ref; \ + Z_SET_ISREF_TO_P(var, _is_ref); \ if (_refcount) { \ - (var)->refcount = _refcount; \ + Z_SET_REFCOUNT_P(var, _refcount); \ } \ zend_hash_update(symtable, (name), (name_length), &(var), sizeof(zval *), NULL); \ } \ |
