summaryrefslogtreecommitdiff
path: root/ext/standard
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard')
-rw-r--r--ext/standard/array.c28
-rw-r--r--ext/standard/basic_functions.c6
-rw-r--r--ext/standard/php_filestat.h2
-rw-r--r--ext/standard/scanf.c24
-rw-r--r--ext/standard/streamsfuncs.c2
-rw-r--r--ext/standard/string.c2
-rw-r--r--ext/standard/user_filters.c4
-rw-r--r--ext/standard/var.c7
-rw-r--r--ext/standard/var_unserializer.c10
-rw-r--r--ext/standard/var_unserializer.re10
10 files changed, 47 insertions, 48 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index f9b2eedbbf..eda9dfc88c 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -1528,10 +1528,10 @@ PHP_FUNCTION(extract)
*orig_var = *entry;
} else {
- if (var_array->refcount > 1 || *entry == EG(uninitialized_zval_ptr)) {
+ if (Z_REFCOUNT_P(var_array) > 1 || *entry == EG(uninitialized_zval_ptr)) {
SEPARATE_ZVAL_TO_MAKE_IS_REF(entry);
} else {
- (*entry)->is_ref = 1;
+ Z_SET_ISREF_PP(entry);
}
zval_add_ref(entry);
zend_u_hash_update(EG(active_symbol_table), Z_TYPE(final_name), Z_UNIVAL(final_name), Z_UNILEN(final_name)+1, (void **) entry, sizeof(zval *), NULL);
@@ -2014,7 +2014,7 @@ HashTable* php_splice(HashTable *in_hash, int offset, int length, zval ***list,
for (pos=0, p=in_hash->pListHead; pos<offset && p ; pos++, p=p->pListNext) {
/* Get entry and increase reference count */
entry = *((zval **)p->pData);
- entry->refcount++;
+ Z_ADDREF_P(entry);
/* Update output hash depending on key type */
if (p->nKeyLength == 0) {
@@ -2028,7 +2028,7 @@ HashTable* php_splice(HashTable *in_hash, int offset, int length, zval ***list,
if (removed != NULL) {
for ( ; pos<offset+length && p; pos++, p=p->pListNext) {
entry = *((zval **)p->pData);
- entry->refcount++;
+ Z_ADDREF_P(entry);
if (p->nKeyLength == 0) {
zend_hash_next_index_insert(*removed, &entry, sizeof(zval *), NULL);
} else {
@@ -2043,7 +2043,7 @@ HashTable* php_splice(HashTable *in_hash, int offset, int length, zval ***list,
/* ..for each one, create a new zval, copy entry into it and copy it into the output hash */
for (i=0; i<list_count; i++) {
entry = *list[i];
- entry->refcount++;
+ Z_ADDREF_P(entry);
zend_hash_next_index_insert(out_hash, &entry, sizeof(zval *), NULL);
}
}
@@ -2051,7 +2051,7 @@ HashTable* php_splice(HashTable *in_hash, int offset, int length, zval ***list,
/* Copy the remaining input hash entries to the output hash */
for ( ; p ; p=p->pListNext) {
entry = *((zval **)p->pData);
- entry->refcount++;
+ Z_ADDREF_P(entry);
if (p->nKeyLength == 0) {
zend_hash_next_index_insert(out_hash, &entry, sizeof(zval *), NULL);
} else {
@@ -2098,7 +2098,7 @@ PHP_FUNCTION(array_push)
/* For each subsequent argument, make it a reference, increase refcount, and add it to the end of the array */
for (i=1; i<argc; i++) {
new_var = *args[i];
- new_var->refcount++;
+ Z_ADDREF_P(new_var);
zend_hash_next_index_insert(Z_ARRVAL_P(stack), &new_var, sizeof(zval *), NULL);
}
@@ -2402,7 +2402,7 @@ PHPAPI int php_array_merge(HashTable *dest, HashTable *src, int recursive TSRMLS
ukey:
if (recursive &&
zend_u_hash_find(dest, utype, string_key, string_key_len, (void **)&dest_entry) == SUCCESS) {
- if (*src_entry == *dest_entry && ((*dest_entry)->refcount % 2)) {
+ if (*src_entry == *dest_entry && (Z_REFCOUNT_PP(dest_entry) % 2)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected");
return 0;
}
@@ -2415,7 +2415,7 @@ ukey:
Z_ARRVAL_PP(src_entry), recursive TSRMLS_CC))
return 0;
} else {
- (*src_entry)->refcount++;
+ Z_ADDREF_PP(src_entry);
zend_u_hash_update(dest, utype, string_key, string_key_len,
src_entry, sizeof(zval *), NULL);
@@ -2423,7 +2423,7 @@ ukey:
break;
case HASH_KEY_IS_LONG:
- (*src_entry)->refcount++;
+ Z_ADDREF_PP(src_entry);
zend_hash_next_index_insert(dest, src_entry, sizeof(zval *), NULL);
break;
}
@@ -3025,7 +3025,7 @@ static void php_array_intersect_key(INTERNAL_FUNCTION_PARAMETERS, int data_compa
}
}
if (ok) {
- (*((zval**)p->pData))->refcount++;
+ Z_ADDREF_PP((zval**)p->pData);
zend_hash_index_update(Z_ARRVAL_P(return_value), p->h, p->pData, sizeof(zval*), NULL);
}
} else {
@@ -3039,7 +3039,7 @@ static void php_array_intersect_key(INTERNAL_FUNCTION_PARAMETERS, int data_compa
}
}
if (ok) {
- (*((zval**)p->pData))->refcount++;
+ Z_ADDREF_PP((zval**)p->pData);
zend_u_hash_quick_update(Z_ARRVAL_P(return_value), p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength, p->h, p->pData, sizeof(zval*), NULL);
}
}
@@ -3458,7 +3458,7 @@ static void php_array_diff_key(INTERNAL_FUNCTION_PARAMETERS, int data_compare_ty
}
}
if (ok) {
- (*((zval**)p->pData))->refcount++;
+ Z_ADDREF_PP((zval**)p->pData);
zend_hash_index_update(Z_ARRVAL_P(return_value), p->h, p->pData, sizeof(zval*), NULL);
}
} else {
@@ -3472,7 +3472,7 @@ static void php_array_diff_key(INTERNAL_FUNCTION_PARAMETERS, int data_compare_ty
}
}
if (ok) {
- (*((zval**)p->pData))->refcount++;
+ Z_ADDREF_PP((zval**)p->pData);
zend_u_hash_quick_update(Z_ARRVAL_P(return_value), p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength, p->h, p->pData, sizeof(zval*), NULL);
}
}
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 9516f7027c..4b2d3b9eff 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -5324,7 +5324,7 @@ PHP_FUNCTION(register_shutdown_function)
}
for (i = 0; i < shutdown_function_entry.arg_count; i++) {
- shutdown_function_entry.arguments[i]->refcount++;
+ Z_ADDREF_P(shutdown_function_entry.arguments[i]);
}
zend_hash_next_index_insert(BG(user_shutdown_function_names), &shutdown_function_entry, sizeof(php_shutdown_function_entry), NULL);
}
@@ -5977,7 +5977,7 @@ PHP_FUNCTION(register_tick_function)
}
for (i = 0; i < tick_fe.arg_count; i++) {
- tick_fe.arguments[i]->refcount++;
+ Z_ADDREF_P(tick_fe.arguments[i]);
}
zend_llist_add_element(BG(user_tick_functions), &tick_fe);
@@ -6324,7 +6324,7 @@ static int copy_request_variable(void *pDest, int num_args, va_list args, zend_h
}
zend_u_delete_global_variable(Z_TYPE(new_key), Z_UNIVAL(new_key), Z_UNILEN(new_key) TSRMLS_CC);
- ZEND_U_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), Z_TYPE(new_key), Z_UNIVAL(new_key), Z_UNILEN(new_key) + 1, *var, (*var)->refcount+1, 0);
+ ZEND_U_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), Z_TYPE(new_key), Z_UNIVAL(new_key), Z_UNILEN(new_key) + 1, *var, Z_REFCOUNT_PP(var)+1, 0);
zval_dtor(&new_key);
return 0;
diff --git a/ext/standard/php_filestat.h b/ext/standard/php_filestat.h
index 1062fc7460..0fb9202b8c 100644
--- a/ext/standard/php_filestat.h
+++ b/ext/standard/php_filestat.h
@@ -62,7 +62,7 @@ PHP_FUNCTION(clearstatcache);
#define MAKE_LONG_ZVAL_INCREF(name, val)\
MAKE_STD_ZVAL(name); \
ZVAL_LONG(name, val); \
- name->refcount++;
+ Z_ADDREF_P(name);
#ifdef PHP_WIN32
#define S_IRUSR S_IREAD
diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c
index c4e132640c..d0af5f75be 100644
--- a/ext/standard/scanf.c
+++ b/ext/standard/scanf.c
@@ -1201,11 +1201,11 @@ literal:
zend_uint refcount;
current = args[objIndex++];
- refcount = (*current)->refcount;
+ refcount = Z_REFCOUNT_PP(current);
zval_dtor( *current );
ZVAL_LONG( *current, (long)(string - baseString) );
- (*current)->refcount = refcount;
- (*current)->is_ref = 1;
+ Z_SET_REFCOUNT_PP(current, refcount);
+ Z_SET_ISREF_PP(current);
} else {
add_index_long(*return_value, objIndex++, string - baseString);
}
@@ -1325,11 +1325,11 @@ literal:
zend_uint refcount;
current = args[objIndex++];
- refcount = (*current)->refcount;
+ refcount = Z_REFCOUNT_PP(current);
zval_dtor( *current );
ZVAL_STRINGL( *current, string, end-string, 1);
- (*current)->refcount = refcount;
- (*current)->is_ref = 1;
+ Z_SET_REFCOUNT_PP(current, refcount);
+ Z_SET_ISREF_PP(current);
} else {
add_index_stringl( *return_value, objIndex++, string, end-string, 1);
}
@@ -1847,11 +1847,11 @@ literal:
zend_uint refcount;
current = args[objIndex++];
- refcount = (*current)->refcount;
+ refcount = Z_REFCOUNT_PP(current);
zval_dtor( *current );
ZVAL_LONG( *current, (long)(string - baseString) );
- (*current)->refcount = refcount;
- (*current)->is_ref = 1;
+ Z_SET_REFCOUNT_PP(current, refcount);
+ Z_SET_ISREF_PP(current);
} else {
add_index_long(*return_value, objIndex++, string - baseString);
}
@@ -1971,11 +1971,11 @@ literal:
zend_uint refcount;
current = args[objIndex++];
- refcount = (*current)->refcount;
+ refcount = Z_REFCOUNT_PP(current);
zval_dtor( *current );
ZVAL_UNICODEL( *current, string, end-string, 1);
- (*current)->refcount = refcount;
- (*current)->is_ref = 1;
+ Z_SET_REFCOUNT_PP(current, refcount);
+ Z_SET_ISREF_PP(current);
} else {
add_index_unicodel( *return_value, objIndex++, string, end-string, 1);
}
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 69b3292abb..d30c7b8018 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -967,7 +967,7 @@ static int parse_context_params(php_stream_context *context, zval *params TSRMLS
context->notifier = php_stream_notification_alloc();
context->notifier->func = user_space_stream_notifier;
context->notifier->ptr = *tmp;
- ZVAL_ADDREF(*tmp);
+ Z_ADDREF_P(*tmp);
context->notifier->dtor = user_space_stream_notifier_dtor;
}
if (SUCCESS == zend_ascii_hash_find(Z_ARRVAL_P(params), "options", sizeof("options"), (void**)&tmp)) {
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 1a11bb2176..a11dec2afa 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -5666,7 +5666,7 @@ static void php_str_replace_common(INTERNAL_FUNCTION_PARAMETERS, int case_sensit
php_str_replace_in_subject(search, replace, subject_entry, result, case_sensitivity, (argc > 3) ? &count : NULL TSRMLS_CC);
} else {
ALLOC_ZVAL(result);
- ZVAL_ADDREF(*subject_entry);
+ Z_ADDREF_P(*subject_entry);
COPY_PZVAL_TO_ZVAL(*result, *subject_entry);
}
/* Add to return array */
diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c
index 27966f748c..c2295c3625 100644
--- a/ext/standard/user_filters.c
+++ b/ext/standard/user_filters.c
@@ -336,8 +336,8 @@ static php_stream_filter *user_filter_factory_create(const char *filtername, zva
/* create the object */
ALLOC_ZVAL(obj);
object_init_ex(obj, fdat->ce);
- ZVAL_REFCOUNT(obj) = 1;
- PZVAL_IS_REF(obj) = 1;
+ Z_SET_REFCOUNT_P(obj, 1);
+ Z_SET_ISREF_P(obj);
/* filtername */
add_property_rt_string(obj, "filtername", (char*)filtername, 1);
diff --git a/ext/standard/var.c b/ext/standard/var.c
index abed4afc2f..3168e3dcbd 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -33,8 +33,7 @@
#include "basic_functions.h"
#include "php_incomplete_class.h"
-#define COMMON ((*struc)->is_ref ? "&" : "")
-#define Z_REFCOUNT_PP(a) ((*a)->refcount)
+#define COMMON (Z_ISREF_PP(struc) ? "&" : "")
/* }}} */
@@ -676,7 +675,7 @@ static inline int php_add_var_hash(HashTable *var_hash, zval *var, void *var_old
}
if (var_old && zend_hash_find(var_hash, p, len, var_old) == SUCCESS) {
- if (!var->is_ref) {
+ if (!Z_ISREF_P(var)) {
/* we still need to bump up the counter, since non-refs will
be counted separately by unserializer */
var_no = -1;
@@ -904,7 +903,7 @@ static void php_var_serialize_intern(smart_str *buf, zval *struc, HashTable *var
if (var_hash
&& php_add_var_hash(var_hash, struc, (void *) &var_already TSRMLS_CC) == FAILURE) {
- if(struc->is_ref) {
+ if(Z_ISREF_P(struc)) {
smart_str_appendl(buf, "R:", 2);
smart_str_append_long(buf, *var_already);
smart_str_appendc(buf, ';');
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c
index a5300878fe..9ca6c54b36 100644
--- a/ext/standard/var_unserializer.c
+++ b/ext/standard/var_unserializer.c
@@ -76,7 +76,7 @@ static inline void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval)
prev->next = var_hash;
}
- (*rval)->refcount++;
+ Z_ADDREF_PP(rval);
var_hash->data[var_hash->used_slots++] = *rval;
}
@@ -1217,8 +1217,8 @@ yy99:
zval_ptr_dtor(rval);
}
*rval = *rval_ref;
- (*rval)->refcount++;
- (*rval)->is_ref = 0;
+ Z_ADDREF_PP(rval);
+ Z_UNSET_ISREF_PP(rval);
return 1;
}
@@ -1261,8 +1261,8 @@ yy105:
zval_ptr_dtor(rval);
}
*rval = *rval_ref;
- (*rval)->refcount++;
- (*rval)->is_ref = 1;
+ Z_ADDREF_PP(rval);
+ Z_SET_ISREF_PP(rval);
return 1;
}
diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re
index 0aca9a657a..15daf57261 100644
--- a/ext/standard/var_unserializer.re
+++ b/ext/standard/var_unserializer.re
@@ -74,7 +74,7 @@ static inline void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval)
prev->next = var_hash;
}
- (*rval)->refcount++;
+ Z_ADDREF_PP(rval);
var_hash->data[var_hash->used_slots++] = *rval;
}
@@ -483,8 +483,8 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
zval_ptr_dtor(rval);
}
*rval = *rval_ref;
- (*rval)->refcount++;
- (*rval)->is_ref = 1;
+ Z_ADDREF_PP(rval);
+ Z_SET_ISREF_PP(rval);
return 1;
}
@@ -506,8 +506,8 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
zval_ptr_dtor(rval);
}
*rval = *rval_ref;
- (*rval)->refcount++;
- (*rval)->is_ref = 0;
+ Z_ADDREF_PP(rval);
+ Z_UNSET_ISREF_PP(rval);
return 1;
}