{
char *spec_walk = *spec;
char c = *spec_walk++;
- int return_null = 0, obj_array = 0;
+ int return_null = 0;
int alternate_form = 0;
int return_orig_type = 0;
zend_uchar orig_type;
}
break;
case 'A':
- obj_array = 1;
case 'a':
{
zval **p = va_arg(*va, zval **);
*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";
}
break;
case 'H':
- obj_array = 1;
case 'h':
{
HashTable **p = va_arg(*va, HashTable **);
}
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";