You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2015/09/02 13:55:42 UTC

svn commit: r1700774 - in /subversion/trunk/subversion: include/svn_io.h libsvn_subr/stream.c libsvn_subr/subst.c

Author: stefan2
Date: Wed Sep  2 11:55:41 2015
New Revision: 1700774

URL: http://svn.apache.org/r1700774
Log:
Revert r1700305.

Modified:
    subversion/trunk/subversion/include/svn_io.h
    subversion/trunk/subversion/libsvn_subr/stream.c
    subversion/trunk/subversion/libsvn_subr/subst.c

Modified: subversion/trunk/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_io.h?rev=1700774&r1=1700773&r2=1700774&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_io.h (original)
+++ subversion/trunk/subversion/include/svn_io.h Wed Sep  2 11:55:41 2015
@@ -910,14 +910,6 @@ typedef svn_error_t *(*svn_stream_mark_f
 typedef svn_error_t *(*svn_stream_seek_fn_t)(void *baton,
                                              const svn_stream_mark_t *mark);
 
-/** Handler function for removing a mark from a generic stream.
- * @see svn_stream_t and svn_stream_remove_mark().
- *
- * @since New in 1.10.
- */
-typedef svn_error_t *(*svn_stream_remove_mark_fn_t)(void *baton,
-                                                    svn_stream_mark_t *mark);
-
 /** Poll handler for generic streams that support incomplete reads, @see
  * svn_stream_t and svn_stream_data_available().
  *
@@ -992,14 +984,6 @@ void
 svn_stream_set_seek(svn_stream_t *stream,
                     svn_stream_seek_fn_t seek_fn);
 
-/** Set @a stream's mark removal function to @a remove_mark_fn
- *
- * @since New in 1.10.
- */
-void
-svn_stream_set_remove_mark(svn_stream_t *stream,
-                           svn_stream_remove_mark_fn_t remove_mark_fn);
-
 /** Set @a stream's data available function to @a data_available_fn
  *
  * @since New in 1.9.
@@ -1385,18 +1369,6 @@ svn_stream_mark(svn_stream_t *stream,
 svn_error_t *
 svn_stream_seek(svn_stream_t *stream, const svn_stream_mark_t *mark);
 
-/** Remove a @a mark from a generic @a stream.  Using this @a mark with
- * svn_stream_seek() afterwards results in undefined behavior.
- *
- * This function returns the #SVN_ERR_STREAM_SEEK_NOT_SUPPORTED error
- * if the stream doesn't implement seeking.
- *
- * @see svn_stream_mark()
- * @since New in 1.10.
- */
-svn_error_t *
-svn_stream_remove_mark(svn_stream_t *stream, svn_stream_mark_t *mark);
-
 /** When a stream supports polling for available data, obtain a boolean
  * indicating whether data is waiting to be read. If the stream doesn't
  * support polling this function returns a #SVN_ERR_STREAM_NOT_SUPPORTED

Modified: subversion/trunk/subversion/libsvn_subr/stream.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/stream.c?rev=1700774&r1=1700773&r2=1700774&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/stream.c (original)
+++ subversion/trunk/subversion/libsvn_subr/stream.c Wed Sep  2 11:55:41 2015
@@ -59,7 +59,6 @@ struct svn_stream_t {
   svn_close_fn_t close_fn;
   svn_stream_mark_fn_t mark_fn;
   svn_stream_seek_fn_t seek_fn;
-  svn_stream_remove_mark_fn_t remove_mark_fn;
   svn_stream_data_available_fn_t data_available_fn;
   svn_stream__is_buffered_fn_t is_buffered_fn;
   apr_file_t *file; /* Maybe NULL */
@@ -132,13 +131,6 @@ svn_stream_set_seek(svn_stream_t *stream
 }
 
 void
-svn_stream_set_remove_mark(svn_stream_t *stream,
-                           svn_stream_remove_mark_fn_t remove_mark_fn)
-{
-  stream->remove_mark_fn = remove_mark_fn;
-}
-
-void
 svn_stream_set_data_available(svn_stream_t *stream,
                               svn_stream_data_available_fn_t data_available_fn)
 {
@@ -259,22 +251,6 @@ svn_stream_seek(svn_stream_t *stream, co
 }
 
 svn_error_t *
-svn_stream_remove_mark(svn_stream_t *stream, svn_stream_mark_t *mark)
-{
-  if (stream->remove_mark_fn == NULL)
-    {
-      if (stream->mark_fn == NULL)
-        return svn_error_create(SVN_ERR_STREAM_SEEK_NOT_SUPPORTED, NULL,
-			        NULL);
-
-       /* This stream simply does not care about existing marks. */
-       return SVN_NO_ERROR;
-    }
-
-  return svn_error_trace(stream->remove_mark_fn(stream->baton, mark));
-}
-
-svn_error_t *
 svn_stream_data_available(svn_stream_t *stream,
                           svn_boolean_t *data_available)
 {
@@ -500,8 +476,7 @@ stream_readline_chunky(svn_stringbuf_t *
   /* Move the stream read pointer to the first position behind the EOL.
    */
   SVN_ERR(svn_stream_seek(stream, mark));
-  SVN_ERR(svn_stream_skip(stream, total_parsed));
-  return svn_error_trace(svn_stream_remove_mark(stream, mark));
+  return svn_error_trace(svn_stream_skip(stream, total_parsed));
 }
 
 /* Guts of svn_stream_readline().
@@ -804,12 +779,6 @@ seek_handler_disown(void *baton, const s
 }
 
 static svn_error_t *
-remove_mark_handler_disown(void *baton, svn_stream_mark_t *mark)
-{
-  return svn_error_trace(svn_stream_remove_mark(baton, mark));
-}
-
-static svn_error_t *
 data_available_disown(void *baton, svn_boolean_t *data_available)
 {
   return svn_error_trace(svn_stream_data_available(baton, data_available));
@@ -831,7 +800,6 @@ svn_stream_disown(svn_stream_t *stream,
   svn_stream_set_write(s, write_handler_disown);
   svn_stream_set_mark(s, mark_handler_disown);
   svn_stream_set_seek(s, seek_handler_disown);
-  svn_stream_set_remove_mark(s, remove_mark_handler_disown);
   svn_stream_set_data_available(s, data_available_disown);
   svn_stream__set_is_buffered(s, is_buffered_handler_disown);
 
@@ -1784,9 +1752,6 @@ struct buffering_stream_wrapper_mark
 {
     /* Absolute position within the stream. */
     svn_filesize_t pos;
-
-    /* The pool that has the cleanup function registered for this mark. */
-    apr_pool_t *pool;
 };
 
 /* Implements svn_stream_t.read_fn for buffering read stream wrappers. */
@@ -1885,7 +1850,6 @@ mark_handler_buffering_wrapper(void *bat
 
   stream_mark = apr_palloc(pool, sizeof(*stream_mark));
   stream_mark->pos = (svn_filesize_t)(btn->buffer_start + btn->buffer_pos);
-  stream_mark->pool = pool;
 
   /* Reference counting: Increment now and schedule automatic the decrement
    * for when the mark is being cleaned up. */
@@ -1936,25 +1900,6 @@ seek_handler_buffering_wrapper(void *bat
   return SVN_NO_ERROR;
 }
 
-/* Implements svn_stream_t.remove_mark_fn for buffering read stream wrappers.
- */
-static svn_error_t *
-remove_mark_handler_buffering_wrapper(void *baton,
-                                      svn_stream_mark_t *mark)
-{
-  struct buffering_stream_wrapper_mark *stream_mark
-    = (struct buffering_stream_wrapper_mark *)mark;
-
-  /* Bookkeeping. */
-  apr_pool_cleanup_run(stream_mark->pool, baton, decrement_mark_count);
-
-  /* Invalidate the mark object so we get an error when trying to use it. */
-  stream_mark->pos = -1;
-  stream_mark->pool = NULL;
-
-  return SVN_NO_ERROR;
-}
-
 /* Implements svn_stream_t.data_available_fn for buffering read stream
  * wrappers. */
 static svn_error_t *
@@ -2024,7 +1969,6 @@ svn_stream_wrap_buffered_read(svn_stream
   svn_stream_set_read2(stream, read_handler_buffering_wrapper, NULL);
   svn_stream_set_mark(stream, mark_handler_buffering_wrapper);
   svn_stream_set_seek(stream, seek_handler_buffering_wrapper);
-  svn_stream_set_remove_mark(stream, remove_mark_handler_buffering_wrapper);
   svn_stream_set_data_available(stream,
                                 data_available_handler_buffering_wrapper);
   svn_stream__set_is_buffered(stream, is_buffered_handler_buffering_wrapper);
@@ -2269,19 +2213,6 @@ seek_handler_lazyopen(void *baton,
   return SVN_NO_ERROR;
 }
 
-/* Implements svn_stream_remove_mark_fn_t */
-static svn_error_t *
-remove_mark_handler_lazyopen(void *baton,
-                             svn_stream_mark_t *mark)
-{
-  lazyopen_baton_t *b = baton;
-
-  SVN_ERR(lazyopen_if_unopened(b));
-  SVN_ERR(svn_stream_remove_mark(b->real_stream, mark));
-
-  return SVN_NO_ERROR;
-}
-
 static svn_error_t *
 data_available_handler_lazyopen(void *baton,
                                 svn_boolean_t *data_available)
@@ -2329,7 +2260,6 @@ svn_stream_lazyopen_create(svn_stream_la
   svn_stream_set_close(stream, close_handler_lazyopen);
   svn_stream_set_mark(stream, mark_handler_lazyopen);
   svn_stream_set_seek(stream, seek_handler_lazyopen);
-  svn_stream_set_remove_mark(stream, remove_mark_handler_lazyopen);
   svn_stream_set_data_available(stream, data_available_handler_lazyopen);
   svn_stream__set_is_buffered(stream, is_buffered_lazyopen);
 

Modified: subversion/trunk/subversion/libsvn_subr/subst.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/subst.c?rev=1700774&r1=1700773&r2=1700774&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/subst.c (original)
+++ subversion/trunk/subversion/libsvn_subr/subst.c Wed Sep  2 11:55:41 2015
@@ -1431,18 +1431,6 @@ translated_stream_seek(void *baton, cons
   return SVN_NO_ERROR;
 }
 
-/* Implements svn_stream_remove_mark_fn_t. */
-static svn_error_t *
-translated_stream_remove_mark(void *baton, svn_stream_mark_t *mark)
-{
-  struct translated_stream_baton *b = baton;
-  mark_translated_t *mt = (mark_translated_t *)mark;
-
-  SVN_ERR(svn_stream_remove_mark(b->stream, mt->mark));
-
-  return SVN_NO_ERROR;
-}
-
 /* Implements svn_stream__is_buffered_fn_t. */
 static svn_boolean_t
 translated_stream_is_buffered(void *baton)
@@ -1560,7 +1548,6 @@ stream_translated(svn_stream_t *stream,
   svn_stream_set_close(s, translated_stream_close);
   svn_stream_set_mark(s, translated_stream_mark);
   svn_stream_set_seek(s, translated_stream_seek);
-  svn_stream_set_remove_mark(s, translated_stream_remove_mark);
   svn_stream__set_is_buffered(s, translated_stream_is_buffered);
 
   return s;