> -----Original Message----- > From: stef...@apache.org [mailto:stef...@apache.org] > Sent: donderdag 14 februari 2013 11:58 > To: comm...@subversion.apache.org > Subject: svn commit: r1446113 - /subversion/branches/fsfs- > format7/subversion/libsvn_fs_fs/index.c > > Author: stefan2 > Date: Thu Feb 14 10:58:15 2013 > New Revision: 1446113 > > URL: http://svn.apache.org/r1446113 > Log: > On the fsfs-format7 branch: Prevent the packed number stream from > prefetching across block boundaries. > > * subversion/libsvn_fs_fs/index.c > (stream_error_create): new error construction utility > (packed_stream_read): limit the prefetch close to block boundaries > > Modified: > subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/index.c > > Modified: subversion/branches/fsfs- > format7/subversion/libsvn_fs_fs/index.c > URL: http://svn.apache.org/viewvc/subversion/branches/fsfs- > format7/subversion/libsvn_fs_fs/index.c?rev=1446113&r1=1446112&r2=144 > 6113&view=diff > ========================================================== > ==================== > --- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/index.c > (original) > +++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/index.c Thu > Feb 14 10:58:15 2013 > @@ -170,6 +170,23 @@ typedef struct packed_number_stream_t > value_position_pair_t buffer[MAX_NUMBER_PREFETCH]; > } packed_number_stream_t; > > +/* Return an svn_error_t * object for error ERR on STREAM with the given > + * MESSAGE string. The latter must have a placeholder for the index file > + * name ("%s") and the current read offset (e.g. "%lx"). > + */ > +static svn_error_t * > +stream_error_create(packed_number_stream_t *stream, > + apr_status_t err, > + const char *message) > +{ > + const char *file_name; > + apr_off_t offset = 0; > + SVN_ERR(svn_io_file_name_get(&file_name, stream->file, > + stream->pool)); > + SVN_ERR(svn_io_file_seek(stream->file, SEEK_CUR, &offset, stream- > >pool)); > + return svn_error_createf(err, NULL, message, file_name, offset); > +}
%lx handles 32 bit on Windows x86 and x64 as long is 32 bit there, while apr_off_t is 64 bit on these platforms. (Or is this special cased in apr or svn?) And I would recommend using 0x%<something> to make it obvious for readers of the message that the value is hexadecimal, without having to check the sourcecode. Bert