diff options
author | Andi Gutmans <andi@php.net> | 2003-12-02 21:09:24 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2003-12-02 21:09:24 +0000 |
commit | 23b231d0eb86c3f1ce835f5df3946b1ab35763d9 (patch) | |
tree | b27d6571564374a0fb658f9321aa3d6085624dd5 /Zend/zend_API.c | |
parent | dacb3a68fe043073fcacead1c60c094d5b0264f0 (diff) | |
download | php-git-23b231d0eb86c3f1ce835f5df3946b1ab35763d9.tar.gz |
- Revert the revert of these patches. This overloading can only be used
- by C extensions such as SimpleXML and *NOT* PHP code. Reasons given
- on the mailing list and problem with reentrancy inside the opcodes.
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 9 |
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"; } |