mirror of
https://github.com/php/php-src.git
synced 2026-04-20 14:31:06 +02:00
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
This commit is contained in:
@@ -685,6 +685,11 @@ END_EXTERN_C()
|
||||
SEPARATE_ZVAL(zv); \
|
||||
}
|
||||
|
||||
#define SEPARATE_ZVAL_IF_REF(zv) \
|
||||
if (Z_ISREF_P(zv)) { \
|
||||
SEPARATE_ZVAL(zv); \
|
||||
}
|
||||
|
||||
#define SEPARATE_ZVAL_TO_MAKE_IS_REF(zv) \
|
||||
if (!Z_ISREF_P(zv)) { \
|
||||
zval ref; \
|
||||
|
||||
@@ -673,30 +673,30 @@ END_EXTERN_C()
|
||||
{ \
|
||||
char *_name = (name); \
|
||||
\
|
||||
ZEND_SET_SYMBOL_WITH_LENGTH(symtable, _name, strlen(_name)+1, var, 1, 0); \
|
||||
ZEND_SET_SYMBOL_WITH_LENGTH(symtable, _name, strlen(_name), var, 1, 0); \
|
||||
}
|
||||
|
||||
#define ZEND_SET_SYMBOL_WITH_LENGTH(symtable, name, name_length, var, _refcount, _is_ref) \
|
||||
{ \
|
||||
zval **orig_var; \
|
||||
zval *orig_var; \
|
||||
\
|
||||
if (zend_hash_find(symtable, (name), (name_length), (void **) &orig_var)==SUCCESS \
|
||||
&& Z_ISREF_PP(orig_var)) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_PP(orig_var)); \
|
||||
Z_SET_ISREF_P(var); \
|
||||
if ((orig_var = zend_hash_str_find(symtable, (name), (name_length))) != NULL \
|
||||
&& Z_ISREF_P(orig_var)) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(orig_var)); \
|
||||
/*???Z_SET_ISREF_P(var);*/ \
|
||||
\
|
||||
if (_refcount) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(var) + _refcount - 1); \
|
||||
} \
|
||||
zval_dtor(*orig_var); \
|
||||
**orig_var = *(var); \
|
||||
FREE_ZVAL(var); \
|
||||
zval_dtor(orig_var); \
|
||||
ZVAL_COPY_VALUE(orig_var, var); \
|
||||
/*???FREE_ZVAL(var);*/ \
|
||||
} else { \
|
||||
Z_SET_ISREF_TO_P(var, _is_ref); \
|
||||
/*???Z_SET_ISREF_TO_P(var, _is_ref);*/ \
|
||||
if (_refcount) { \
|
||||
Z_SET_REFCOUNT_P(var, _refcount); \
|
||||
} \
|
||||
zend_hash_update(symtable, (name), (name_length), &(var), sizeof(zval *), NULL); \
|
||||
zend_hash_str_update(symtable, (name), (name_length), var); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
1226
ext/standard/array.c
1226
ext/standard/array.c
File diff suppressed because it is too large
Load Diff
@@ -103,7 +103,7 @@ PHP_FUNCTION(array_key_exists);
|
||||
PHP_FUNCTION(array_chunk);
|
||||
PHP_FUNCTION(array_combine);
|
||||
|
||||
PHPAPI HashTable* php_splice(HashTable *, int, int, zval ***, int, HashTable **);
|
||||
PHPAPI HashTable* php_splice(HashTable *, int, int, zval *, int, HashTable *);
|
||||
PHPAPI int php_array_merge(HashTable *dest, HashTable *src, int recursive TSRMLS_DC);
|
||||
PHPAPI int php_array_replace_recursive(HashTable *dest, HashTable *src TSRMLS_DC);
|
||||
PHPAPI int php_multisort_compare(const void *a, const void *b TSRMLS_DC);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user