On 05/08/2012 02:25 PM, Greg Stein wrote: > On Tue, May 8, 2012 at 11:06 AM, <[email protected]> wrote: >> ... >> +++ subversion/trunk/subversion/libsvn_subr/stream.c Tue May 8 15:06:18 2012 >> ... >> +/* Implements svn_stream_stream_fn_t */ >> +svn_error_t * >> +svn_stream_lazyopen_create(svn_stream_t **stream, >> + svn_stream_lazyopen_func_t open_func, >> + void *open_baton, >> + apr_pool_t *result_pool) > > Implements what?! That comment seems like a copy/paste-o.
Well, sorta. More like a poorly composed emacs macro. :-)
>> +{
>> + lazyopen_baton_t *lob = apr_pcalloc(result_pool, sizeof(*lob));
>> +
>> + lob->open_func = open_func;
>> + lob->open_baton = open_baton;
>> + lob->real_stream = NULL;
>> + lob->pool = result_pool;
>> +
>> + *stream = svn_stream_create(lob, result_pool);
>> + svn_stream_set_read(*stream, read_handler_lazyopen);
>> + svn_stream_set_skip(*stream, skip_handler_lazyopen);
>> + svn_stream_set_write(*stream, write_handler_lazyopen);
>> + svn_stream_set_close(*stream, close_handler_lazyopen);
>> + svn_stream_set_mark(*stream, mark_handler_lazyopen);
>> + svn_stream_set_seek(*stream, seek_handler_lazyopen);
>> +
>> + return SVN_NO_ERROR;
>> +}
>
> Per my suggestion on IRC, I don't see how this function can ever
> error, or ever need a scratch_pool (no matter how we might
> extend/upgrade it). I'd suggest updating the signature accordingly.
I removed the scratch_pool from svn_stream_lazyopen_create() already, but
forgot about the "don't return an error" bit. Will fix.
I *did* preserve the scratchpool in the open_func() callback, though, and
the one implementation thereof uses it to pass to
svn_wc__db_pristine_read(). But if you think that's unnecessary too, I can
pull it.
--
C. Michael Pilato <[email protected]>
CollabNet <> www.collab.net <> Enterprise Cloud Development
signature.asc
Description: OpenPGP digital signature

