On Tue, May 8, 2012 at 7:06 PM, <cmpil...@apache.org> wrote: > Author: cmpilato > Date: Tue May 8 15:06:18 2012 > New Revision: 1335566 > > URL: http://svn.apache.org/viewvc?rev=1335566&view=rev > Log: > Introduce a generic (and as-yet-unused) lazy-open wrapper stream. > > * subversion/include/svn_io.h > (svn_stream_lazyopen_func_t): New callback function type. > (svn_stream_lazyopen_create): New function. > > * subversion/libsvn_subr/stream.c > (lazyopen_baton_t): New private baton type. > (lazyopen_if_unopened, read_handler_lazyopen, skip_handler_lazyopen, > write_handler_lazyopen, close_handler_lazyopen, > mark_handler_lazyopen, seek_handler_lazyopen): New helper > functions, machinery for... > (svn_stream_lazyopen_create): ... this new API implemention. > > Suggested by: gstein > [...]
> +/* Implements svn_close_fn_t */ > +static svn_error_t * > +close_handler_lazyopen(void *baton) > +{ > + lazyopen_baton_t *b = baton; > + > + SVN_ERR(lazyopen_if_unopened(b)); > + SVN_ERR(svn_stream_close(b->real_stream)); I think we should just no-op in case if wrapped stream is not opened. I meant: [[[ if (opened) { SVN_ERR(svn_stream_close(b->real_stream)); } return SVN_NO_ERROR; ]]] [...] -- Ivan Zhakov