summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 404c6a4273..00ed8abb2e 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -315,10 +315,17 @@ static char *zend_parse_arg_impl(zval **arg, va_list *va, char **spec TSRMLS_DC)
*p = Z_STRVAL_PP(arg);
*pl = Z_STRLEN_PP(arg);
break;
+ case IS_OBJECT: {
+ 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;
+ }
+ }
case IS_ARRAY:
case IS_RESOURCE:
- case IS_OBJECT:
default:
return "string";
}