From: Antony Dovgal Date: Tue, 13 Feb 2007 19:50:59 +0000 (+0000) Subject: MFH: improve php_userstreamop_seek() X-Git-Tag: php-5.2.2RC1~409 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c8a4b1363861f4ec407a072f0789d515c2220474;p=php MFH: improve php_userstreamop_seek() --- diff --git a/main/streams/userspace.c b/main/streams/userspace.c index 0fe6e21342..235147b7ff 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -759,6 +759,10 @@ static int php_userstreamop_seek(php_stream *stream, off_t offset, int whence, o retval = NULL; } + if (ret) { + return ret; + } + /* now determine where we are */ ZVAL_STRINGL(&func_name, USERSTREAM_TELL, sizeof(USERSTREAM_TELL)-1, 0); @@ -768,16 +772,20 @@ static int php_userstreamop_seek(php_stream *stream, off_t offset, int whence, o &retval, 0, NULL, 0, NULL TSRMLS_CC); - if (call_result == SUCCESS && retval != NULL && Z_TYPE_P(retval) == IS_LONG) + if (call_result == SUCCESS && retval != NULL && Z_TYPE_P(retval) == IS_LONG) { *newoffs = Z_LVAL_P(retval); - else - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s::" USERSTREAM_TELL " is not implemented!", - us->wrapper->classname); + ret = 0; + } else if (call_result == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s::" USERSTREAM_TELL " is not implemented!", us->wrapper->classname); + ret = -1; + } else { + ret = -1; + } - if (retval) + if (retval) { zval_ptr_dtor(&retval); - - return 0; + } + return ret; } /* parse the return value from one of the stat functions and store the