This commit is contained in:
Stanislav Malyshev 2008-11-25 22:15:22 +00:00
parent b2cd1a717a
commit 2016a84cae

View file

@ -295,7 +295,7 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp
{
char *spec_walk = *spec;
char c = *spec_walk++;
int return_null = 0, obj_array = 0;
int return_null = 0;
/* scan through modifiers */
while (1) {
@ -452,7 +452,6 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp
}
break;
case 'A':
obj_array = 1;
case 'a':
{
zval **p = va_arg(*va, zval **);
@ -460,7 +459,7 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp
*p = NULL;
break;
}
if (Z_TYPE_PP(arg) == IS_ARRAY || (Z_TYPE_PP(arg) == IS_OBJECT && obj_array != 0)) {
if (Z_TYPE_PP(arg) == IS_ARRAY || (c == 'A' && Z_TYPE_PP(arg) == IS_OBJECT)) {
*p = *arg;
} else {
return "array";
@ -468,7 +467,6 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp
}
break;
case 'H':
obj_array = 1;
case 'h':
{
HashTable **p = va_arg(*va, HashTable **);
@ -478,7 +476,7 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp
}
if (Z_TYPE_PP(arg) == IS_ARRAY) {
*p = Z_ARRVAL_PP(arg);
} else if(obj_array && Z_TYPE_PP(arg) == IS_OBJECT) {
} else if(c == 'H' && Z_TYPE_PP(arg) == IS_OBJECT) {
*p = HASH_OF(*arg);
if(*p == NULL) {
return "array";