|
|
|
@ -338,12 +338,13 @@ static char *zend_parse_arg_impl(zval **arg, va_list *va, char **spec TSRMLS_DC) |
|
|
|
*pl = Z_STRLEN_PP(arg); |
|
|
|
break; |
|
|
|
case IS_OBJECT: { |
|
|
|
SEPARATE_ZVAL_IF_NOT_REF(arg); |
|
|
|
if (Z_OBJ_HANDLER_PP(arg, cast_object) |
|
|
|
&& Z_OBJ_HANDLER_PP(arg, cast_object)(*arg, *arg, IS_STRING, 0 TSRMLS_CC) == SUCCESS) { |
|
|
|
*pl = Z_STRLEN_PP(arg); |
|
|
|
*p = Z_STRVAL_PP(arg); |
|
|
|
break; |
|
|
|
if (Z_OBJ_HANDLER_PP(arg, cast_object)) { |
|
|
|
SEPARATE_ZVAL_IF_NOT_REF(arg); |
|
|
|
if (Z_OBJ_HANDLER_PP(arg, cast_object)(*arg, *arg, IS_STRING, 0 TSRMLS_CC) == SUCCESS) { |
|
|
|
*pl = Z_STRLEN_PP(arg); |
|
|
|
*p = Z_STRVAL_PP(arg); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|