diff options
Diffstat (limited to 'ext/spl/spl_array.c')
| -rwxr-xr-x | ext/spl/spl_array.c | 32 | 
1 files changed, 16 insertions, 16 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index da554af5f9..75bab2dc41 100755 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -152,11 +152,11 @@ static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, s  				zend_hash_copy(HASH_OF(intern->array), HASH_OF(other->array), (copy_ctor_func_t) zval_add_ref, &tmp, sizeof(zval*));  			}  			if (Z_OBJ_HT_P(orig) == &spl_handler_ArrayIterator) { -				ZVAL_ADDREF(other->array); +				Z_ADDREF_P(other->array);  			}  		} else {  			intern->array = orig; -			ZVAL_ADDREF(intern->array); +			Z_ADDREF_P(intern->array);  			intern->ar_flags |= SPL_ARRAY_IS_REF | SPL_ARRAY_USE_OTHER;  		}  	} else { @@ -321,22 +321,22 @@ static zval *spl_array_read_dimension_ex(int check_inherited, zval *object, zval  	/* When in a write context,  	 * ZE has to be fooled into thinking this is in a reference set  	 * by separating (if necessary) and returning as an is_ref=1 zval (even if refcount == 1) */ -	if ((type == BP_VAR_W || type == BP_VAR_RW) && !(*ret)->is_ref) { -		if ((*ret)->refcount > 1) { +	if ((type == BP_VAR_W || type == BP_VAR_RW) && !Z_ISREF_PP(ret)) { +		if (Z_REFCOUNT_PP(ret) > 1) {  			zval *newval;  			/* Separate */  			MAKE_STD_ZVAL(newval);  			*newval = **ret;  			zval_copy_ctor(newval); -			newval->refcount = 1; +			Z_SET_REFCOUNT_P(newval, 1);  			/* Replace */ -			(*ret)->refcount--; +			Z_DELREF_PP(ret);  			*ret = newval;  		} -		(*ret)->is_ref = 1; +		Z_SET_ISREF_PP(ret);  	}  	return *ret; @@ -364,7 +364,7 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval  	}  	if (!offset) { -		value->refcount++; +		Z_ADDREF_P(value);  		zend_hash_next_index_insert(spl_array_get_hash_table(intern, 0 TSRMLS_CC), (void**)&value, sizeof(void*), NULL);  		return;  	} @@ -376,7 +376,7 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval  			zend_throw_exception(spl_ce_InvalidArgumentException, "An offset must not begin with \\0 or be empty", 0 TSRMLS_CC);  			return;  		} -		value->refcount++; +		Z_ADDREF_P(value);  		zend_u_symtable_update(spl_array_get_hash_table(intern, 0 TSRMLS_CC), Z_TYPE_P(offset), Z_UNIVAL_P(offset), Z_UNILEN_P(offset)+1, (void**)&value, sizeof(void*), NULL);  		return;  	case IS_DOUBLE: @@ -388,11 +388,11 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval  		} else {  			index = Z_LVAL_P(offset);  		} -		value->refcount++; +		Z_ADDREF_P(value);  		zend_hash_index_update(spl_array_get_hash_table(intern, 0 TSRMLS_CC), index, (void**)&value, sizeof(void*), NULL);  		return;  	case IS_NULL: -		value->refcount++; +		Z_ADDREF_P(value);  		zend_hash_next_index_insert(spl_array_get_hash_table(intern, 0 TSRMLS_CC), (void**)&value, sizeof(void*), NULL);  		return;  	default: @@ -913,7 +913,7 @@ zend_object_iterator *spl_array_get_iterator(zend_class_entry *ce, zval *object,  	iterator     = emalloc(sizeof(spl_array_it)); -	object->refcount++; +	Z_ADDREF_P(object);  	iterator->intern.it.data = (void*)object;  	iterator->intern.it.funcs = &spl_array_it_funcs;  	iterator->intern.ce = ce; @@ -982,7 +982,7 @@ SPL_METHOD(Array, __construct)  		intern->ar_flags &= ~SPL_ARRAY_IS_SELF;  	}  	intern->ar_flags |= ar_flags; -	ZVAL_ADDREF(intern->array); +	Z_ADDREF_P(intern->array);  	if (Z_TYPE_PP(array) == IS_OBJECT) {  		zend_object_get_properties_t handler = Z_OBJ_HANDLER_PP(array, get_properties);  		if ((handler != std_object_handlers.get_properties && handler != spl_array_get_properties) @@ -1089,7 +1089,7 @@ SPL_METHOD(Array, exchangeArray)  	} else {  		intern->ar_flags &= ~SPL_ARRAY_IS_SELF;  	} -	ZVAL_ADDREF(intern->array); +	Z_ADDREF_P(intern->array);  	spl_array_rewind(intern TSRMLS_CC);  } @@ -1111,8 +1111,8 @@ SPL_METHOD(Array, getIterator)  	return_value->type = IS_OBJECT;  	return_value->value.obj = spl_array_object_new_ex(intern->ce_get_iterator, &iterator, object, 0 TSRMLS_CC); -	return_value->refcount = 1; -	return_value->is_ref = 1; +	Z_SET_REFCOUNT_P(return_value, 1); +	Z_SET_ISREF_P(return_value);  }  /* }}} */  | 
